冒泡排序
冒泡排序(Bubble Sorting
)的基本思想是:通过对待
排序序列从前向后(从下标较小的元素开始),依次比较
相邻元素的值,若发现逆序则交换,使值较大
的元素逐渐从前移向后部,就象水底下的气泡一样逐渐
向上冒。
因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下
来没有进行过交换,就说明序列有序,因此要在排序过程中设置
一个标志flag
判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)
演示冒泡过程的例子(图解)
原始数组:3, 9, -1, 10, 20
第一趟排序 (1) 3, 9, -1, 10, 20 // 如果相邻的元素逆序就交换 (2) 3, -1, 9, 10, 20 (3) 3, -1, 9, 10, 20 (4) 3, -1, 9, 10, 20
第二趟排序 (1) -1, 3, 9, 10, 20 //交换 (2) -1, 3, 9, 10, 20 (3) -1, 3, 9, 10, 20
第三趟排序 (1) -1, 3, 9, 10, 20 (2) -1, 3, 9, 10, 20
第四趟排序 (1) -1, 3, 9, 10, 20
小结冒泡排序规则 (1) 一共进行 数组的大小-1 次(大的循环)排序 (2)每一趟排序的次数在逐渐的减少 (3) 如果我们发现在某趟排序中,没有发生一次交换, 可以提前结束冒泡排序。这个就是优化