常见算法的时间复杂度

  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!

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值