1. 程式人生 > >12-看圖理解資料結構與算法系列(氣泡排序)

12-看圖理解資料結構與算法系列(氣泡排序)

氣泡排序

氣泡排序是一種很簡單的排序演算法,主要思想就是不斷走訪待排序序列,每次只比較兩個相鄰元素,如果這倆元素順序不符合要求則對換它們,不斷重複知道沒有相鄰元素需要對換。在不斷走訪比較過程中,越大的元素經過交換會慢慢走到數列頂端,所以看起來它就像氣泡一樣不斷往上冒,於是就叫冒泡。

排序要點

  1. 比較相鄰兩個元素,如果前一元素比後一元素大則對換它們的位置。
  2. 從頭開始對每一對相鄰元素都執行1的對比工作,直至結尾最後一對,執行完一輪後,該輪最大的元素被換置到最後。
  3. 針對所有元素執行若干輪1和2操作,每次經過2操作後都會將該輪的最大值換置到該輪最後,而最後元素不參與下一輪。
  4. 每一輪對越來越少的元素重複3操作,直至沒有任何一對元素需要比較。

排序過程

假設我們有如下5個元素,分別為72,58,22,34,14,現在進行氣泡排序。

 

image

 

第一遍,對所有元素前後兩個元素進行比較,

 

image

 

72比58大,兩者對換,完成後繼續與下一元素比較,

 

image

 

72比22大,兩者對換,完成後繼續與下一元素比較,

 

image

 

72比34大,兩者對換,完成後繼續與下一元素比較,

 

image

 

72比14大,兩者對換,72已經到序列最頂端,它是這一輪的最大的元素。下一輪比較排除72,只需比較58,22,34,14。開始比較,

 

image

 

58比22大,兩者對換,完成後繼續與下一元素比較,

 

image

 

58比34大,兩者對換,完成後繼續與下一元素比較,

 

image

 

58比14大,兩者對換,58已經到該輪序列最頂端,它是這一輪的最大的元素。下一輪比較排除58,只需比較22,34,14。開始比較,

 

image

 

22比34小,兩者不對換,繼續與下一元素比較,

 

image

 

34比14大,兩者對換,34已經到該輪序列最頂端,它是這一輪的最大的元素。下一輪比較排除34,只需比較22,14。開始比較,

 

image

 

22比14大,兩者對換,22已經到該輪序列最頂端,它是這一輪的最大的元素。除了22後只剩一個元素,停止比較,至此完成了整個排序工作。

 

image
作者:超人汪小建
連結:https://juejin.im/post/5b99af795188255c880aa98b
來源:掘金
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。