算法設計與分析課程的時間空間復雜度:
總結
算法 | 時間復雜度 | 空間復雜度 | 說明 |
---|---|---|---|
Hanoi | $ O(2^n) $ | $ O(n) $ | 遞歸使用 |
會場安排問題 | \(O(nlogn)\) | \(O(n)\) | 貪心 |
哈夫曼樹編碼 | \(O(nlogn)\) | $$O(n)$$ | 貪心 $$O(n^2) $$(未采用特殊數據結構) |
dijkstra | \(O(n^2)\) | \(O(n)\) | 單源最短路徑問題,貪心 |
Prim | \(O(n^2)\) | \(O(n)\) | 最小生成樹 |
Kruskal | $$O(eloge)$$ | \(O(e)\) | 最小生成樹 |
大整數乘法(四次) | \(O(n^2)\) | \(O(log_2n)\) | 分治 |
大整數乘法(三次) | \(O(n^{log_23})\) | \(O(log_2n)\) | 分治 |
二分查找(遞歸) | \(O(log_2n)\) | \(O(log_2n)\) | 分治 |
二分查找(非遞歸) | \(O(log_2n)\) | \(O(1)\) | 分治 |
循環日程表 | \(O(n^2)\) | \(O(log_2n)\) | 分治 |
歸並排序 | $$O(nlog_2n)$$ | \(O(n)\) | 分治 |
快速排序 | $$O(nlog_2n)$$ | \(O(n)\) | 分治 |
棋盤覆蓋問題 | $$O(4^k)$$ | $$ O(k)$$ | 分治 |
Fibonacci(遞歸) | $$ O({1.628}^n) $$ | \(O(n)\) | 動態規划 |
Fibonacci(非遞歸) | \(O(n)\) | \(O(n)\) | 動態規划 |
最長公共子序列(非遞歸) | \(O(mn)-O(n^2)\) | \(O(mn)-O(n^2)\) | 動態規划 |
最長公共子序列(遞歸) | \(O(2^{min(m,n)})\) | \(O(min(m,n))\) | 動態規划 |
矩陣連乘(遞歸) | \(O(2^n)\) | \(O(n^2)\) | 動態規划 |
矩陣連乘(DP) | \(O(n^3)\) | \(O(n^2)\) | 動態規划 |
0-1背包(DP) | \(O(nw)->O(n2^n)\) | \(O(nw)\) | 動態規划 |
0-1背包(貪心) | \(O(nlog_2n)\) | \(O(n)\) | 貪心法 |
DFS | $$O( | V | + |
BFS | $$O( | V | + |
子集樹遞歸回溯 | \(O(2^n)\) | 搜索法 | |
排列樹遞歸回溯 | \(O(n!)\) | 搜索法 | |
滿m叉樹遞歸回溯 | \(O(m^n)\) | 搜索法 | |
n皇后滿m叉樹 | \(O(nm^n)\) | \(O(n^n)\) | 搜索法 |
n皇后排列樹 | \(O(n^2(n-1)!)\) | \(O(n!)\) | 搜索法 |
0-1背包回溯法 | \(O(n2^n)\) | \(O(2^n)\) | 搜索法 |
最大團問題 | \(O(n2^n)\) | \(O(2^n)\) | 搜索法 |
旅行商問題TSP | \(O(n!)\) | \(O(n!)\) | 搜索法 |
圖的m着色GCP | \(O(nm^n)\) | \(O(m^n)\) | 搜索法 |
隊列式0-1背包 | $$O(n2^n)$$ | \(O(2^n)\) | 搜索法 |
優先隊列0-1背包 | \(O(n2^n)\) | \(O(2^n)\) | 搜索法 |
隊列式旅行商 | \(O(n!)\) | \(O(n!)\) | 搜索法 |
優先隊列式旅行商 | \(O(n!)\) | \(O(n!)\) | 搜索法 |
布線問題 隊列式 | \(O(nm)\) | \(O(nm)\) | 搜索法 |