常用的排序演算法和時間複雜度
1. 資料結構部分
資料結構中常用的操作的效率表
通用資料結構 | 查詢 | 插入 | 刪除 | 遍歷 |
O(N) | O(1) | O(N) | — | |
O(logN) | O(N) | O(N) | O(N) | |
O(N) | O(1) | O(N) | — | |
有序連結串列 | O(N) | O(N) | O(N) | O(N) |
O(logN) | O(logN) | O(logN) | O(N) | |
二叉樹(最壞) | O(N) | O(N) | O(N) | O(N) |
O(logN) | O(logN) | O(logN) | O(N) | |
O(logN) | O(logN) | O(logN) | O(N) | |
O(1) | O(1) | O(1) | — | |
專用資料結構 | ||||
— | O(1) | O(1) | — | |
— | O(1) | O(1) | — | |
優先順序佇列 | — | O(N) | O(1) | — |
— | O(logN) | O(logN) |
2. 排序演算法
常見的排序演算法比較表
排序 | 平均情況 | 最好情況 | 最壞情況 | 穩定與否 | 空間複雜度 |
O(N2) | O(N) | O(N2) | 穩定 | 1 | |
O(N2) | O(N2) | O(N2) | 不穩定 | 1 | |
O(N2) | O(N) | O(N2) | 穩定 | 1 | |
O(NlogN) | (依賴於增量序列) | 不穩定 | 1 | ||
O(NlogN) | O(NlogN) | O(N2) | 不穩定 | O(logN) | |
O(NlogN) | O(NlogN) | O(NlogN) | 穩定 | O(N) | |
O(NlogN) | O(NlogN) | O(N2) | 穩定 | O(N) | |
O(NlogN) | O(NlogN) | O(NlogN) | 不穩定 | 1 | |
O(N+E) | — | — | — | O(N) |