1.算法简介
冒泡排序(Bubble Sort)是一种简单的排序算法。一次比较相邻的两个元素,如果较大元素在后则需要交换。重复走访待排序的数列,直至没有交换发生为止。算法名字的由来:越小的元素会经由交换慢慢“浮”到数列的顶端,像冒泡一样。
冒泡排序是与插入排序拥有相同的时间复杂度O(n^2),但所需要的交换次数却很大地不同。在最坏的情况,冒泡排序需要O(n^2)次交换,而插入排序只要最多O(n)交换。冒泡排序的实现通常会对已经排序好的数列拙劣地执行(O(n^2)),而插入排序在这个例子只需要O(n)个运算。因此很多现代的算法教科书避免使用冒泡排序,而用插入排序取代之。
算法的步骤如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。