5.2 冒泡排序(bubble sort)
冒泡排序法是一种经典的、入门级的排序算法。它重复地遍历整个数组,对数组的元素进行两两比较,如果两数的顺序有误,则将两数字交换。
由于在比较的过程中,最小的数先变换到数列的顶端,其次是第二小的数……直至所有数字完成排序,因而得名冒泡排序。
冒泡排序的具体运算如下:
首先,从子数列的最后一位开始,比较相邻两元素,如果第一个比第二个大,则交换两元素。直至比较直子数列的开头。
其次,将第一个元素剔除出子数列(此时第一个元素已经为最小值)。
再次,对剩余的子数列重复第一步、第二步,直至剩余最后一个元素。
以数列{8,9,1,2,7}为例,冒泡排序法的排序过程如图5-2所示。其中,绿色的元素表示正在进行比较的元素,蓝色的元素表示已经完成排序的元素。
好了,冒泡排序原理相对简单,就不多解释了,直接上代码。
C代码实现为:
C++代码实现为: