常用时间复杂度整理

按数量级递增排列,常见的时间复杂度有:
常数阶O(1),对数阶O(log2n),线性阶O(n),
线性对数阶O(nlog2n),平方阶O(n^2),立方阶O(n^3),...,

k次方阶O(n^k),指数阶O(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。

时间复杂度:基本操作重复执行的次数的阶数 T(n)=o(f(n))
以下六种计算算法时间的多项式是最常用的。其关系为:
 O(1)<O(logn)<O(n)<O(nlogn) <O(n2)<O(n3)
指数时间的关系为:
   O(2n)<O(n!)<O(nn)
   当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊。


以下是一些常见时间复杂度的例子。

名称 复杂度类 运行时间(常用时间复杂度整理 运行时间举例 算法举例
常数时间
常用时间复杂度整理 10 判断一个二进制数的奇偶
阿克曼时间
常用时间复杂度整理
并查集的单个操作的平摊时间
迭代对数时间
常用时间复杂度整理
en:Cole-Vishkin algorithm
对数对数时间
常用时间复杂度整理
有界优先队列的单个操作[1]
对数时间 DLOGTIME 常用时间复杂度整理 常用时间复杂度整理常用时间复杂度整理 二分搜索
幂对数时间
常用时间复杂度整理 常用时间复杂度整理
(小于1次)幂时间
常用时间复杂度整理,其中常用时间复杂度整理 常用时间复杂度整理常用时间复杂度整理 K-d树的搜索操作
线性时间
常用时间复杂度整理 常用时间复杂度整理 无序数组的搜索
线性迭代对数时间
常用时间复杂度整理
Raimund Seidel三角分割多边形算法
线性对数时间
常用时间复杂度整理 常用时间复杂度整理常用时间复杂度整理 最快的比较排序
二次时间
常用时间复杂度整理 常用时间复杂度整理 冒泡排序插入排序
三次时间
常用时间复杂度整理 常用时间复杂度整理 矩阵乘法的基本实现,计算部分相关性
多项式时间 P 常用时间复杂度整理 常用时间复杂度整理常用时间复杂度整理常用时间复杂度整理 线性规划中的en:Karmarkar's algorithmAKS质数测试
准多项式时间 QP 常用时间复杂度整理
关于有向斯坦纳树问题最著名的常用时间复杂度整理近似算法
次指数时间(第一定义) SUBEXP 常用时间复杂度整理,对任意的ε > 0 常用时间复杂度整理 Assuming complexity theoretic conjectures, BPP is contained in SUBEXP.[2]
次指数时间(第二定义)
2o(n 2n1/3 Best-known algorithm for integer factorization and graph isomorphism
指数时间 E 2O(n) 1.1n, 10n 使用动态规划解决旅行推销员问题
阶乘时间
O(n!) n! 通过暴力搜索解决旅行推销员问题
指数时间 EXPTIME 2poly(n) 2n, 2n2
双重指数时间 2-EXPTIME 22poly(n) 22n Deciding the truth of a given statement in Presburger arithmetic

常用时间复杂度整理

常用时间复杂度整理

常用时间复杂度如图:

常用时间复杂度整理

常用时间复杂度整理