1.什么是冒泡排序?
冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。
2.来个实战应用
我们举一个具体的案例来说明冒泡法。我们将五个无序的数:3,9,-1,10,20使用冒泡排序法将其排成一个从小到大的有序数列。
3.实战总结
- 一共进行数组的大小-1次大的循环
每一趟排序的次数在逐渐的减少
每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。
4.代码助力
int[] array = new int[]{3, 9, -1, 10, 2};for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}System.out.println("第"+(i+1)+"趟排序后的顺序:"+Arrays.toString(array));}System.out.println("从小到大的排序:"+Arrays.toString(array));}
5.优化一下我
- 每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。
boolean flag = false;//标识变量for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j array[j + 1]) {flag = true;int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}System.out.println("第" + (i + 1) + "趟排序后的顺序:" + Arrays.toString(array));if (!flag) {//在一趟排序中,没有发生一次交换break;} else {flag = false;//重置}}System.out.println("从小到大的排序:" + Arrays.toString(array));}