0、算法概述
0.1 算法分類
十種常見排序算法可以分為兩大類:
- 比較類排序:通過比較來決定元素間的相對次序,由于其時間複雜度不能突破O(nlogn),是以也稱為非線性時間比較類排序。
- 非比較類排序:不通過比較來決定元素間的相對次序,它可以突破基于比較排序的時間下界,以線性時間運作,是以也稱為線性時間非比較類排序。

0.2 算法複雜度
0.3 相關概念
- 穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面。
- 不穩定:如果a原本在b的前面,而a=b,排序之後 a 可能會出現在 b 的後面。
- 内排序:所有排序操作都在記憶體中完成;
- 外排序:由于資料太大,是以把資料放在磁盤中,而排序通過磁盤和記憶體的資料傳輸才能進行;
- 時間複雜度:對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。
- 空間複雜度:是指算法在計算機内執行時所需存儲空間的度量,它也是資料規模n的函數。
後續具體算法詳見本專題分類...
參考資料:
【1】 https://blog.csdn.net/MoreWindows/column/info/algorithm-easyword
【2】 https://www.cnblogs.com/onepixel/articles/7674659.html
【3】 https://blog.csdn.net/hellozhxy/article/details/79911867