算法设计与分析课程的时间空间复杂度:
总结
| 算法 | 时间复杂度 | 空间复杂度 | 说明 |
|---|---|---|---|
| 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)) | 搜索法 |