冒泡排序(Bubble Sorting)的基本思想是:对某序列依次比较相邻元素的值,若发现前面元素的值大于后面元素的值则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。
通过一道题,我们来分析冒泡排序:
将五个无序的数字:58,26,91,54,37按照冒泡排序法将其排成一个从小到大的有序数列
总结冒泡排序特点:
- 我们一共有五个元素
- 一共进行了四轮排序,可以看成是外层循环
- 每一轮排序可以确定一个数的位置,比如第一轮排序,确定最大数。第二轮排序确定第二大的位置,依次类推
- 当进行比较时,如果前面的数大于后面的数就交换
- 每轮比较在减少 4-3-2-1
代码实现:
int[] arr = {58, 26, 91, 54, 37};
int temp = 0;//用于辅助交换的变量
for (int j = 0; j < arr.length - 1; j++) {//外层循环4次
for (int i = 0; i < arr.length - 1 - j; i++) {//4次--3次--2次--1次
//如果前面的数大于后面的数,就交换
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
System.out.println("\n第" + (j + 1) + "轮比较");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
得出和上面分析一样的结果
冒泡分析还有很多知识点,今天先分享到这里,后面再补充!