10大經典排序演算法動畫

Java團長_發表於2018-12-07

640

來源:五分鐘學演算法(ID:blgczzz)

排序演算法是《資料結構與演算法》中最基本的演算法之一。

排序演算法可以分為內部排序外部排序

內部排序是資料記錄在記憶體中進行排序。

而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。

常見的內部排序演算法有:插入排序、希爾排序、選擇排序、氣泡排序、歸併排序、快速排序、堆排序、基數排序等。

用一張圖概括:

640

關於時間複雜度:

  1. 平方階 (O(n2)) 排序 各類簡單排序:直接插入、直接選擇和氣泡排序。

  2. 線性對數階 (O(nlog2n)) 排序 快速排序、堆排序和歸併排序;

  3. O(n1+§)) 排序,§ 是介於 0 和 1 之間的常數。 希爾排序

  4. 線性階 (O(n)) 排序 基數排序,此外還有桶、箱排序。

關於穩定性:

  1. 穩定的排序演算法:氣泡排序、插入排序、歸併排序和基數排序。

  2. 不是穩定的排序演算法:選擇排序、快速排序、希爾排序、堆排序。

 氣泡排序

640

 選擇排序

640

 插入排序

640

希爾排序

640

 歸併排序

640

 快速排序

640

堆排序

640

計數排序

640

桶排序

640

 基數排序

640


文章思路開源專案地址:https://github.com/hustcc/JS-Sorting-Algorithm,整理人 hustcc。


PS:如果覺得我的分享不錯,歡迎大家隨手點贊、轉發。

(完)

Java團長

專注於Java乾貨分享

640

掃描上方二維碼獲取更多Java乾貨

相關文章