天天看點

【圖解資料結構】 一組動畫示範冒泡排序

算法步驟

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
  3. 針對所有的元素重複以上的步驟,除了最後一個。
  4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

算法示範

【圖解資料結構】 一組動畫示範冒泡排序

排序動畫過程解釋

  1. 将天平放在序列的右端,并比較天平左右的數字
  2. 在這種情況下我們比較 3 和 8
  3. 比較後如果右邊的數字較小,則被交換
  4. 因為 8 大于 3 ,是以數字不用交換
  5. 比較完成後,将天平向左移動一個位置,比較數字
  6. 因為 3 大于 2 ,是以數字不用交換
  7. 比較完成後,逐一移動天平,比較數字
  8. 此時 2 小于 4 ,是以左右的數字互相交換
  9. 重複同樣的操作,直到天平移動到左端
  10. 。。。。。。
  11. 天平到達左端
  12. 經過上述的操作,數列中最小的數字已經移動到左端
  13. 将天平傳回右端
  14. 重複相同的操作,直到所有數字都被排序
  15. 吐完泡泡了

參考代碼

C++

【圖解資料結構】 一組動畫示範冒泡排序

Java

Python