以前學習排序算法的時候一直糾結於複雜度問題,緣由是網上查到的算法複雜度略有出入,因此本人特意整理了一份,方便你們學習。算法
記住一句話:冒擇路(入)兮(希爾)快歸堆學習
算法名稱ui |
最好spa |
平均blog |
最壞排序 |
輔助空間ci |
穩定性io |
|
插入table |
直接插入二叉樹 |
O(n) |
O(n^2) |
1 |
穩定 |
|
折半插入 |
O(nlogn) |
1 |
穩定 |
|||
希爾排序ShellSort |
O(nlogn) |
1 |
不穩定 |
|||
交換 |
冒泡排序BubbleSort |
O(n) |
O(n^2) |
1 |
穩定 |
|
快速排序QuickSort |
O(nlogn) |
O(n^2) |
logn |
不穩定 |
||
選擇 |
選擇排序Selection |
O(n^2) |
1 |
不穩定 |
||
堆排序HeapSort |
O(nlogn) |
1 |
不穩定 |
|||
其餘 |
歸併排序MergeSort |
O(nlogn) |
n |
穩定 |
||
基數排序RadixSort |
O(nd),d是常數 |
n |
穩定 |
|||
二叉樹Binarytree |
O(nlogn) |
n |
穩定 |
|||
桶排序BucketSort |
O(n) |
k |
穩定 |