一、时间复杂度

程序 = 数据结构 + 算法

1. 数据结构:高效处理大量数据的构造(数据的位置和顺序)
2. 算法:解决方案,解决问题的有限步骤

优秀的算法

1. 准确性(结果正确)
2. 可停止性(在有限的时间内结束)
3. 程序更高效(更快)
4. 花费资源更小(内存和程序存储空间)

时间复杂度O(f(n))(衡量算法好坏,总用用了多少步)

T(n):程序的运行时间,n是数据输入量
f(n):运行时间成长率
某算法运行时间T(n)的时间复杂度为O(f(n)),意思是某算法运行时间不会超过常数倍的f(n),即T(n) <= c*f(n)。
为了简便,只保留对T(n)影响最大的因子。

常见的时间复杂度

O(1) 常数时间,运行时间是常数的倍数
O(n) 线性时间,运行时间是随数据集合的大小线性增长
O(log2n) 次线性时间,运行时间是比线性慢,比常数快
O(n2) 平方时间,运行时间是2次方增长
O(n3) 立方时间,运行时间是3次方增长
O(2n) 指数时间,运行时间是2的n次方增长
O(nlog2n) 线性乘对数时间,运行时间是线性和2次方之间

当n>=16时,O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值