时间复杂度和空间复杂度

  • 时间复杂度:执行当前程序消耗的度量
  • 空间复杂度:当前程序运行占用内存的度量

以上两个维度去衡量一个算法的耗时与占用内存,用big O 来表示

时间复杂度

常数阶复杂度 O(1)

执行的程序中不存在循环,比如

a = 1
b = 2
print(a+b)

在一段代码中执行的次数是常数,其时间复杂度就是O(1)

线性阶复杂度O(n)

在执行的程度中存在单层循环,时间复杂度为循环的次数n,比如

for i in range(0, n):
	print(i)
对数阶O(logN)
 i = 1
while(i<n):
    i = i * 2

每一次执行循环体,i的值就乘以2,循环x次之后,i 大于 n退出循环体,结束运行,也就是说 2 的 x 次方等于 n,那么 x = log2^n,则时间复杂度为O(logN)

线性对数阶O(nlogN)

O(nlogN) = O(N)x O(logN),在上述的循环体中增加时间负责度为O(N)的循环,如

for i in range(0,n):
	while(i<n):
		i = i * 2
平方阶O(n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值