当前位置:   article > 正文

常见算法的时间复杂度_时间复杂度各阶

时间复杂度各阶
  1. 常数阶O(1):无论数据规模有多大,都可以在一次计算后找到目标。
  2. 对数阶O(log n)或O(log 2n):每找一次都排除一半的可能。
  3. 线性阶O(n):循环时数据量增大几倍耗时也增大几倍。
  4. 线性对数阶O(n log N):将时间复杂度为O(log n)的代码循环N遍。
  5. 平方阶O(n^2):对数据进行排序需要扫描n*n次。
  6. 立方阶O(n^3):同上n*n*n。
  7. K次方阶O(n^k):同上
  8. 指数阶O(2^n):同上

类型

意义

举例

O(1)

最低复杂度,耗时/耗空间与数据的大小无关,无论输入的数据增大多少倍耗时还是空间都不变。

哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到(不考虑冲突)

O(log n)

当数据增大n倍时,耗时增大logn倍(log是以2为底的),也就是n/long。

二分查找算法就是O(log n)算法,每找一次都排除一半的可能。如256个数据找8次就能找到目标

O(n)

数据量增大几倍,耗时也增大几倍

遍历算法普通的for循环

O(n log N)

将时间复杂度为O(log n)的代码循环N遍,比如数据增大256倍时,耗时增大256*8倍。

归并排序、快速排序、堆排序

O(n^2)

对n个数的排序,需要循环n*n次

冒泡排序、插入排序、选择排序

O(n^3)

同上,相当于三层n循环。

常规的矩阵乘算法

O(n^k)

同上,相当于k层n循环

O(2^n)

常见的时间复杂度,由大到小依次为:1 < log2N < n < n*Log2N < n^2 < n^3 < 2^n < 3^n < n!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/721809
推荐阅读
相关标签
  

闽ICP备14008679号