冒泡排序 C语言
最近有个朋友问我冒泡排序,给ta讲了几遍,感觉自己理解的还可以吧,就写篇博客总结一下。
冒泡排序其实就是取一堆数字中的一个与其他数字进行比较,然后根据判断条件执行换位操作,里面用到了一个嵌套循环。
就比如说给你一串数字:7 4 8 9 2 ,按照从小到大的顺序排列。冒泡排序的流程就是先取出来7,然后先跟4比较,比4大,就把7跟4换位。这时候数列就变成了4 7 8 9 2 。
然后再拿7跟8比较,比8小,就不换位,数列不变。
再拿8跟9比较,8比9小,不换位,数列不变。
再拿9跟2比较,9比2大,换位,这时候数列就变成了7 4 8 2 9。
这样我们会发现,每次比较一趟,就会把最大的那个放到了最后面。
因此,如果想把7 4 8 9 2这五个数排列好,就需要循环4躺,因为第4躺时,第二小的数字(也就是4)就已经排到了7的左边,2的右边
(2 4 7 8 9),这时候就已经排列好,不需要进行第五次排列。
这是我自己写的代码,可能会不规范:
运行结果如下: