天天看點

排序算法之冒泡排序

5.2 冒泡排序(bubble sort)

      冒泡排序法是一種經典的、入門級的排序算法。它重複地周遊整個數組,對數組的元素進行兩兩比較,如果兩數的順序有誤,則将兩數字交換。

      由于在比較的過程中,最小的數先變換到數列的頂端,其次是第二小的數……直至所有數字完成排序,因而得名冒泡排序。

      冒泡排序的具體運算如下:

      首先,從子數列的最後一位開始,比較相鄰兩元素,如果第一個比第二個大,則交換兩元素。直至比較直子數列的開頭。

      其次,将第一個元素剔除出子數列(此時第一個元素已經為最小值)。

      再次,對剩餘的子數列重複第一步、第二步,直至剩餘最後一個元素。

      以數列{8,9,1,2,7}為例,冒泡排序法的排序過程如圖5-2所示。其中,綠色的元素表示正在進行比較的元素,藍色的元素表示已經完成排序的元素。

排序算法之冒泡排序

      好了,冒泡排序原理相對簡單,就不多解釋了,直接上代碼。

C代碼實作為:

C++代碼實作為:

繼續閱讀