氣泡排序(Bubble Sort)
阿新 • • 發佈:2018-12-13
介紹
氣泡排序是一種簡單的排序方法。它的核心思想是對陣列進行=N - 1=次遍歷,每一次遍歷的過程中,會從前往後依次的比較相鄰兩個數的大小;如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾! 採用相同的方法再次遍歷時,第二大的元素就被排列在最大元素之前。重複此操作,直到整個數列都有序為止!
方法論
正像剛才介紹的一樣,為了給一個數組進行排序,我們遍歷這個陣列並且依次比較兩個相鄰的陣列元素,如果前面的元素大於後面的元素,則交換兩者之間的位置。對於一個數組長度為N
的陣列需要進行N - 1
此遍歷操作。
接下來我用陣列{47,17, 23, 5, 76, 10}
來舉例演示氣泡排序:
- 進行第一次遍歷,並從比較 47 和 17 的大小開始,因為
47 > 17
, 所以需要交換兩者的位置,結果如下: 【17,47】,23,5,76,10 - 接下來將比較的下標往右移一位,並重覆上一步操作,比較 47 和 23 : 17,【23,47】,5,76,10
- 繼續重複第2步,直到下標移動到 N - 1結束 17, 23,【5,47】,76,10 17, 23,5,【47,76】,10 17,23,5,47,【10, 76】
可以看到
上圖
下圖是以 {45, 17, 23, 5, 76, 10}
為例,演示氣泡排序5次(N = 6)遍歷的過程
可以看到, 在第一次遍歷之後,陣列中最大的元素 76
5
被排序為止。