十大經典排序算法動畫,看我就夠了!

Tip 爲了演示更加清楚,本文中全部的動畫都放慢了速度,所以GIF大小對比以前會有所增大,圖片加載速度會變慢,若是你想獲取全部的超清動畫,在公衆號 五分鐘學算法 回覆 掘金 可得到資料。算法

在前面的章節中詳細的講解分析了十大經典排序算法,本文將進行一個大總結同時分析它們的時間複雜度與穩定性。數據結構

排序算法是《數據結構與算法》中最基本的算法之一。動畫

排序算法能夠分爲內部排序外部排序3d

內部排序是數據記錄在內存中進行排序。cdn

而外部排序是因排序的數據很大,一次不能容納所有的排序記錄,在排序過程當中須要訪問外存。blog

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

用一張圖歸納:圖片

image

關於時間複雜度:

  1. 平方階 (O(n2)) 排序 各種簡單排序:直接插入、直接選擇和冒泡排序。
  2. 線性對數階 (O(nlog2n)) 排序 快速排序、堆排序和歸併排序;
  3. O(n1+§)) 排序,§ 是介於 0 和 1 之間的常數。 希爾排序
  4. 線性階 (O(n)) 排序 基數排序,此外還有桶、箱排序。

關於穩定性:

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

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

1. 冒泡排序

image

2. 選擇排序

image

3. 插入排序

4. 希爾排序

image

5. 歸併排序

image

6. 快速排序

image

7. 堆排序

image

8. 計數排序

image

9. 桶排序

image

10. 基數排序

image
相關文章
相關標籤/搜索