1. 程式人生 > >氣泡排序(Bubble Sort)

氣泡排序(Bubble Sort)

介紹

氣泡排序是一種簡單的排序方法。它的核心思想是對陣列進行=N - 1=次遍歷,每一次遍歷的過程中,會從前往後依次的比較相鄰兩個數的大小;如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾! 採用相同的方法再次遍歷時,第二大的元素就被排列在最大元素之前。重複此操作,直到整個數列都有序為止!

方法論

正像剛才介紹的一樣,為了給一個數組進行排序,我們遍歷這個陣列並且依次比較兩個相鄰的陣列元素,如果前面的元素大於後面的元素,則交換兩者之間的位置。對於一個數組長度為N的陣列需要進行N - 1此遍歷操作。

接下來我用陣列{47,17, 23, 5, 76, 10}來舉例演示氣泡排序:

  1. 進行第一次遍歷,並從比較 4717 的大小開始,因為47 > 17, 所以需要交換兩者的位置,結果如下: 【1747】,23,5,76,10
  2. 接下來將比較的下標往右移一位,並重覆上一步操作,比較 4723 : 17,【2347】,5,76,10
  3. 繼續重複第2步,直到下標移動到 N - 1結束 17, 23,【5,47】,76,10 17, 23,5,【4776】,10 17,23,5,47,【1076

可以看到

上圖

下圖是以 {45, 17, 23, 5, 76, 10} 為例,演示氣泡排序5次(N = 6)遍歷的過程 Bubble Sort Image 可以看到, 在第一次遍歷之後,陣列中最大的元素 76

已經在陣列的最後位置。我們需要做的就是重複這個遍歷的操作,直到陣列中最後一個元素5被排序為止。