基本思想
冒泡排序算法的运作如下:
比较两个相邻的数,如果前面的数大于后面的数,则将这两个数交换位置。第一次遍历后,最大的数会被放到数组的最后位置,即array[length - 1]。
第二次遍历时跳过最后一个元素,因为该元素通过第一次遍历已经确定是最大值。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
例子
下面通过一个例子来看看冒泡排序是怎么工作的。红色的数为正在比较的数,原数组如下。
第一次循环:
1.首先比较arr[0]和aar[1],即19和15;因为19 > 15,因此交换两个数的位置,交换完的数组如下。
比较和交换对应的代码如下:
2.接着比较arr[1]和arr[2],即19和37;因为19 < 37,因此两个数的位置不变,如下。