冒泡排序法又称交换排序法,是从观察水中气泡的变化构思而成的,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒泡上升到水面一样,如此扫描过一次之后就可以确保最后一个元素位于正确的顺序。接着再逐步进行第二次扫描,直到完成所有元素的排序关系为止。
下面使用55,23,87,62,16数列来演示排序过程,这样大家可以清楚地知道冒泡排序具体流程,从小到大排序,原始顺序如图所示,排序的具体过程如图
1 第一次扫描会先拿到第一个元素 55 和第二个元素 23 进行比较,如果第二个元素小于第一个元素,则进行交换。接着拿55和87进行比较,就这样一直比较并交换,直到第四次比较完后确定最大值在数组的最后面。
2 第二次扫描也是从头比较,但是因为最后一个元素在第一次扫描就已经确定是数组中的最大值,故只需比较 3 次可把剩余数组的最大值排到剩余数组的最后面。
3 第三次扫描完后,完成三个值的排序