算法设计与分析课程的时间空间复杂度:

总结

算法

时间复杂度

空间复杂度

说明

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)\)

搜索法


代码改变世界