摘要
冒泡排序是排序算法中比较简单的一个排序。它重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并一直重复这样的走访操作,知道没有要交换的数据元素为止。
冒泡排序的原理
首先我们肯定要有一个数组,里面存放着待排序的数据元素,我们如果需要把比较大的元素排在前面,把小的元素排在后面,那么需要从尾到头开始下面的比较操作。
1.从尾部开始比较相邻的两个元素,如果尾部的元素比前面的大,就交换两个元素的位置。
2.往前对每个相邻的元素都做这样的比较、交换操作,这样到数组头部时,第一个元素成为最大的元素
3.重新从尾部开始第1、2步的操作,除了在这之前已经排好的元素
4.继续对越来越少的数据进行比较、交换操作,知道没有可比较的数据为止,排序完成。
我们来看一个冒泡排序的例子,加入我们要把12、35、99、18、76这5个数从大到小进行排序,那么数越大,越需要把它放在前面。冒泡排序的思想就是在每次遍历一遍未排序的数列后,将一个数据元素浮上去。
我们从后开始遍历,首先比较18和76两个数,发现76比18大,就把这两个数交换顺序,得到12 35 99 76 18;接着比较76和99,发现76比99小,所以不用交换;接着比较99和35,发现99比35大,交换顺序;接着比较99和12,发现99比12大,交换顺序,最终第1趟排序的结果变成了99 12 35 76 18,排序的过程如下图所示:
经过第一趟排序,我们已经都找到最大的元素,接下来的第二趟排序就只对剩下的4个元素进行排序,第2趟排序的过程如下图所示
经过第二趟排序,结果为99 76 12 35 18,接下来