算法设计与分析课程的时间空间复杂度:
总结
算法 | 时间复杂度 | 空间复杂度 | 说明 |
---|---|---|---|
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|+|E|)\] | 搜索法 | |
BFS | \[O(|V|+|E|)\] | 搜索法 | |
子集树递归回溯 | \(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)\) | 搜索法 |