算法时间复杂度_算法效率的度量之时间复杂度

e8b0386d9f1abbc8908ed7c49fb6d364.png

算法:对特定问题求解步骤的一种描述。

本章内容是关于时间复杂度的一些阐述,一段可实现功能的代码的优劣性可通过它的时间复杂度和空间复杂度来衡量,一段代码的时间开销越短,就说明这段代码就越优,毫无疑问是要保证它能正确实现功能的前提下。但我们不能简单地对这段代码测试运行时间,因为有很多的客观因素影响代码的执行速度,比如机器性能、实现算法所采用的编程语言,性能越优的主机执行代码的速度越快,这是毋庸置疑的,反之越慢。越高级的语言执行速度越慢,比如java语言写的程序比C语言慢,所以我们就把这段代码中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,可能有小伙伴不知道频度什么意思?这里简单解释一下,一个句子的频度是指该语句在算法中被重复执行的次数。

注意:当问题规模n足够大时,我们可以忽略低阶的项数,多项相加,只保留最高阶的项,且系数变为1.例如f(n)=an^3+bn^2+cn的时间复杂度为O(n^3).通常以最深层循环内的语句的频度来表示时间复杂度。记为T(n)=O(f(n)).

52ba81488e6e2ad261609b98a5792a2c.png
O(1)

2efca0b4836595f24e694ded773b1ea9.png
时间复杂度为O(n)

3b9d626057230849522e265d22e994dd.png
O(n^2)

关于时间复杂度的比较:

2bef946ceb63fa909babc674297bb538.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值