第一步:
public static void main(String [] args) { test(); } public static void test() { int[]array={5,3,2,6,7,9,1}; for (int i = 0; i <array.length ; i++) { System.out.print(array[i]); } BootSort(array); System.out.println(); for (int sout:array) { System.out.print(sout); } } private static void BootSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { if (array[i] > array[i + 1]) { int temp = array[i];//本来数组位置; array[i] = array[i + 1]; array[i + 1] = temp; } } }
第二步
private static void BootSort(int[] array) { for (int j = array.length-1; j >0; j--) { for (int i = 0; i < j; i++) { if (array[i] > array[i + 1]) { int temp = array[i];//本来数组位置; array[i] = array[i + 1]; array[i + 1] = temp; } } } }
第三步
private static void BootSort(int[] array) { for (int j = array.length-1; j >0; j--) { boolean flag=true; for (int i = 0; i < j; i++) { if (array[i] > array[i + 1]) { int temp = array[i];//本来数组位置; array[i] = array[i + 1]; array[i + 1] = temp; flag=false;//优化,走进来了那就可以结束循环了 } } if (flag){ break; } } }
上面就是一个简单冒泡排序,有一次面试问我冒泡排序什么场景用,呵呵,斗牛,升级都在用,
又问我如果俩个数排序用什么排序好,冒泡排序适合多少数字,这个没有回答上来。