排序演算法
一直以來,都沒有系統去總結排序演算法,導致經常會對某些概念和思路很模糊。例如時間複雜度的計算、各種演算法的原理和比較。 本系列文章,將盡量從原理上去分析排序演算法的思路和要點,並系統歸納各個演算法的優劣。文章定有不足和疏漏之處,望及時指正。本人也以此為記錄,以便後續學習。
若有排版問題,可直接到github上檢視完整的文章和原始碼!
若有排版問題,可直接到github上檢視完整的文章和原始碼!
若有排版問題,可直接到github上檢視完整的文章和原始碼!
- 1、 演算法特性及大O記法 Big O notation
- 2、 氣泡排序 Bubble sort
- 3、 選擇排序 Selection sort
- 4、 插入排序 Insertion sort
- 5、 希爾排序 Shell sort
- 6、 歸併排序 Merge sort
- 7、 堆排序 Heap sort
- 8、 快速排序 Quick sort
- 9、 計數排序 Counting sort
- 10、 基數排序 Radix sort
- 11、 桶排序 Bucket sort
- 12、 排序演算法比較與總結
約定與申明
- 本系列所有演算法的實現都是基於javascript。
- 每種演算法都有一個獨立的資料夾。資料夾下有該演算法的思路講解以及程式碼實現。
- 每篇文章我會在Node小棧部落格倉庫中拷貝一份,歡迎大家提issue,指正不當之處。
- 文章中內容大多從github、medium和blog學習總結而來。文中摘取的圖片及某些思路,版權歸原作者所有。如有不便之處,可聯絡本人。本人郵箱:gedennis@163.com。
資源與參考
[1] CMU algorithm complexity
[2] brilliant sorting algorithms
[3] big o notation cheat sheet
[4] You need to understand Big O notation, now
[5] 凱耐基梅隆大學資料結構與演算法
[6] About the #sorting-algorithms series
[7] 十大經典排序演算法
[8] visualgo 排序動畫演示