算法設計與分析課程的時間空間復雜度:
總結
| 算法 | 時間復雜度 | 空間復雜度 | 說明 |
|---|---|---|---|
| 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)\) | 搜索法 |
