基础排序算法 – 冒泡排序Bubble sort
?原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,
這樣一趟過去后,最大或最小的數字被交換到了最后一位,
然后再從頭開始進行兩兩比較交換,直到倒數第二位時結束。
?
從小到大排序:
原始待排序數組| 6 | 2 | 4 | 1 | 5 | 9 |
第一趟排序(外循環)
第一次兩兩比較6 > 2交換(內循環)
交換前狀態| 6 | 2 |?4 | 1 | 5 | 9 |
交換后狀態| 2 | 6 |?4 | 1 | 5 | 9 |
第二次兩兩比較,6 > 4交換
交換前狀態| 2?| 6 | 4 |?1 | 5 | 9 |
交換后狀態| 2?| 4 | 6 |?1 | 5 | 9 |
第三次兩兩比較,6 > 1交換
交換前狀態| 2 | 4?| 6 | 1 |?5 | 9 |
交換后狀態| 2 | 4?| 1 | 6 |?5 | 9 |
第四次兩兩比較,6 > 5交換
交換前狀態| 2 | 4 | 1?| 6 | 5 |?9 |
交換后狀態| 2 | 4 | 1?| 5 | 6 |?9 |
第五次兩兩比較,6 < 9不交換
交換前狀態| 2 | 4 | 1 | 5?| 6 | 9 |
交換后狀態| 2 | 4 | 1 | 5?| 6 | 9 |
第二趟排序(外循環)
第一次兩兩比較2 < 4不交換
交換前狀態| 2 | 4 |?1 | 5 | 6 | 9 |
交換后狀態| 2 | 4 |?1 | 5 | 6 | 9 |
第二次兩兩比較,4 > 1交換
交換前狀態| 2?| 4 | 1 |?5 | 6 | 9 |
交換后狀態| 2?| 1 | 4 |?5 | 6 | 9 |
第三次兩兩比較,4 < 5不交換
交換前狀態| 2 | 1?| 4 | 5 |?6 | 9 |
交換后狀態| 2 | 1?| 4 | 5 |?6 | 9 |
第四次兩兩比較,5 < 6不交換
交換前狀態| 2 | 1 | 4?| 5 | 6 |?9 |
交換后狀態| 2 | 1 | 4?| 5 | 6 |?9 |
第三趟排序(外循環)
第一次兩兩比較2 > 1交換
交換后狀態| 2 | 1 |?4 | 5 | 6 | 9 |
交換后狀態| 1 | 2 |?4 | 5 | 6 | 9 |
第二次兩兩比較,2 < 4不交換
交換后狀態| 1?| 2 | 4 |?5 | 6 | 9 |
交換后狀態| 1?| 2 | 4 |?5 | 6 | 9 |
第三次兩兩比較,4 < 5不交換
交換后狀態| 1 | 2?| 4 | 5 |?6 | 9 |
交換后狀態| 1 | 2?| 4 | 5 |?6 | 9 |
第四趟排序(外循環)無交換
第五趟排序(外循環)無交換
排序完畢,輸出最終結果1 2 4 5 6 9
?
冒泡排序的動畫演示:
?
C語言代碼:
引用來自:http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html
轉載于:https://blog.51cto.com/wenryxu/1173274
總結
以上是生活随笔為你收集整理的基础排序算法 – 冒泡排序Bubble sort的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT-Linux开发环境的搭建
- 下一篇: insert /*+ APPEND */