這裡只總結各種排序演算法的效能特點,不含演算法具體的實現
演算法是否穩定
是否為原地排序
時間複雜度
空間複雜度
備註選擇排序否是
n^21
插入排序是是
介於n和n^2之間
1取決於輸入元素的排列情況
希爾排序否是
nlogn?n^(6⁄5)
1快速排序否是
nlogn
lgn執行效率由概率提供保證
三向快速排序否是
介於n和nlogn之間
lgn執行效率由概率保證,同時也取決於輸入元素的分布情況
歸併排序是否
nlogn
n堆排序否是
nlogn
1這裡的穩定的意思是乙個排序演算法能夠保留陣列中重複元素的相對位置則可以被稱為穩定的。
接下來總結一下各排序演算法的性質和優劣
各種排序演算法效能之間的比較
今天總結一下各種常見的排序演算法的時間效能 空間效能以及適用的場景。排序法平均時間 最壞時間 最好時間 穩定性額外空間 備註冒泡法 o n n o n n o n 穩定o 1 n小時較好 演算法比較簡單 插入法o n n o n n o n 穩定o 1 大部分已排序時較好 直接選擇 o n n o ...
各種內排序演算法效能比較
各種內排序演算法效能比較 個人總結 穩定性最好情況 最壞情況 平均空間複雜度 確定最終位置 簡單選擇排序 屬於選擇排序 不穩定o n n 1趟 o n n 1趟 o n n 1趟 o 1 一趟排序後能確定某個元素的最終位置 直接插入排序 穩定o n n 1趟 o n n 1趟 反向有序 o n n ...
各種排序演算法的時間效能比較
include include using namespace std 氣泡排序 原理 1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面...