Java冒泡算法算是最常见的算法之一了。那么什么是冒泡算法呢?如下图所示(图片来自网络):
其实可以看到,第一遍的遍历过程中,首先比较第一对数字,比较交换完成后第二个数字一定是比较大的,接下来比较第二对,同样进行比较交换,那么这个时候第三个数一定是较大的,这样所有的数对比较完成之后,最大的数字就会冒泡到数组的最右侧。接下来第二轮就可以把第二大的数放在右侧数第二个位置上,以此类推...当遍历一遍没有可以交换的数字的时候,就说明这个队列已经是有序的了。
1 public static void main(String[] args) { 2 int[] arr = {11, 13, 10, 34, 31, 24, 15, 16, 26, 9, 16, 4992, 356}; 3 bubbleSort(arr);//排序完成,数字为9,10,11,13,15,16,16,24,26,31,34,356,4992, 4 } 5 6 7 public static void bubbleSort(int[] arr) { 8 for (int i = 0; i < arr.length - 1; i++) { 9 boolean flag = true;//设定一个标记,若为true,则表示排序已然完成。 10 for (int j = 0; j < arr.length - 1 - i; j++) { 11 if (arr[j] > arr[j + 1]) { 12 int temp = arr[j]; 13 arr[j] = arr[j+1]; 14 arr[j+1] = temp; 15 flag = false; 16 } 17 } 18 if (flag) { 19 System.out.print("排序完成,数字为"); 20 for (int i1 : arr) { 21 System.out.print(i1+","); 22 } 23 break; 24 } 25 } 26 27 }