基础冒泡排序
一、什么是冒泡排序?
冒泡排序作为一种简单的排序算法。字如其名,就像水中的气泡一样,通过比较不断向后交换,使大的元素(或小的)到达数组尾端,直到没有任何一对元素需要比较为止。
二、冒泡排序的过程
以升序为例:
假如我们有一组数组[8,16,3,32,99,28],从小到大排序。
第一轮遍历:
比较8和16 → 16>8,则不交换;
比较16和3 → 16>3,则交换得 [8,3,16,32,99,28];
比较16和32 → 32>16,不交换;
比较32和99 → 99>32,不交换;
比较99和28 → 99>28,交换得 [8,3,16,32,28,99];
最大的元素99移到最后一位
第一轮结束;
第二轮遍历:
比较8和3 → 8>3,则交换得 [3,8,16,32,28,99];
比较8和16 → 16>8,不交换;
比较16和32 → 32>16,不交换;
比较32和28 → 32>28,则交换得 [3,8,16,28,32,99];
第二大的32移到倒数第二位
第二轮结束;
……
……
……
三、基本代码实现

四、关键部分代码解释
循环条件:
外层循环i:表示已经进行了多少轮次的比较。每经过一轮就会有一个当前轮次的最大值到达尾端,共需a.length-1个轮次。
内层循环j:依次比较当前轮次中的相邻两个元素大小。比较范围的是[0,a.lenght-i-1]。
五、总结
冒泡排序得益于原地排序的方法,操作简单便于理解,但对于大规模数据处理显得拖沓,性能要差很多。

浙公网安备 33010602011771号