前言
推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。
氣泡排序
氣泡排序是一種很簡單的排序演算法,主要思想就是不斷走訪待排序序列,每次只比較兩個相鄰元素,如果這倆元素順序不符合要求則對換它們,不斷重複知道沒有相鄰元素需要對換。在不斷走訪比較過程中,越大的元素經過交換會慢慢走到數列頂端,所以看起來它就像氣泡一樣不斷往上冒,於是就叫冒泡。
排序要點
- 比較相鄰兩個元素,如果前一元素比後一元素大則對換它們的位置。
- 從頭開始對每一對相鄰元素都執行1的對比工作,直至結尾最後一對,執行完一輪後,該輪最大的元素被換置到最後。
- 針對所有元素執行若干輪1和2操作,每次經過2操作後都會將該輪的最大值換置到該輪最後,而最後元素不參與下一輪。
- 每一輪對越來越少的元素重複3操作,直至沒有任何一對元素需要比較。
排序過程
假設我們有如下5個元素,分別為72,58,22,34,14
,現在進行氣泡排序。
第一遍,對所有元素前後兩個元素進行比較,
72比58大,兩者對換,完成後繼續與下一元素比較,
72比22大,兩者對換,完成後繼續與下一元素比較,
72比34大,兩者對換,完成後繼續與下一元素比較,
72比14大,兩者對換,72已經到序列最頂端,它是這一輪的最大的元素。下一輪比較排除72,只需比較58,22,34,14
。開始比較,
58比22大,兩者對換,完成後繼續與下一元素比較,
58比34大,兩者對換,完成後繼續與下一元素比較,
58比14大,兩者對換,58已經到該輪序列最頂端,它是這一輪的最大的元素。下一輪比較排除58,只需比較22,34,14
。開始比較,
22比34小,兩者不對換,繼續與下一元素比較,
34比14大,兩者對換,34已經到該輪序列最頂端,它是這一輪的最大的元素。下一輪比較排除34,只需比較22,14
。開始比較,
22比14大,兩者對換,22已經到該輪序列最頂端,它是這一輪的最大的元素。除了22後只剩一個元素,停止比較,至此完成了整個排序工作。
-------------推薦閱讀------------
我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:
歡迎關注: