5.2 冒泡排序(bubble sort)
冒泡排序法是一種經典的、入門級的排序算法。它重複地周遊整個數組,對數組的元素進行兩兩比較,如果兩數的順序有誤,則将兩數字交換。
由于在比較的過程中,最小的數先變換到數列的頂端,其次是第二小的數……直至所有數字完成排序,因而得名冒泡排序。
冒泡排序的具體運算如下:
首先,從子數列的最後一位開始,比較相鄰兩元素,如果第一個比第二個大,則交換兩元素。直至比較直子數列的開頭。
其次,将第一個元素剔除出子數列(此時第一個元素已經為最小值)。
再次,對剩餘的子數列重複第一步、第二步,直至剩餘最後一個元素。
以數列{8,9,1,2,7}為例,冒泡排序法的排序過程如圖5-2所示。其中,綠色的元素表示正在進行比較的元素,藍色的元素表示已經完成排序的元素。
好了,冒泡排序原理相對簡單,就不多解釋了,直接上代碼。
C代碼實作為:
C++代碼實作為: