算法效率衡量标准(时间复杂度)

  1. 时间复杂度简介:
  • 相信大多数人判断一个算法的好坏就是比较算法的执行时间,即经过多长的时间可以运算出结果。其实这并不是正确的。如果对于解决一个问题有2种算法,算法1的执行时间小于算法2,这并不能代表算法1优于算法2。假设执行算法1的计算机性能和环境都低于执行算法2的计算机的性能和环境,那么算法1可能执行的时间会更长。所以可以看出仅仅根据执行时间来衡量算法的优劣不一定是正确的。

  • 算法的衡量标准应该是以时间复杂度来进行衡量。 时间复杂度:就是运算所经历的步骤。

  • 用比较官方的话说就是(摘自百度百科):计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

  1. 时间复杂度的分类:
  • 最优时间复杂度:完成运算最少需要多少步骤。(最乐观的情况,我们一般不考虑)
  • 最坏时间复杂度:完成运算最多需要多少步骤。(在实际中,都是关注最坏时间复杂度。)
  • 平均时间复杂度:完成运算平均需要多少步骤。(平均时间复杂度的意义也不大)

3.时间复杂度的几条基本计算规则:

  • 基本操作,即只有常数项,认为其时间复杂度为O(1)
  • 顺序结构,时间复杂度按加法进行计算
  • 循环结构,时间复杂度按乘法进行计算
  • 分支结构,时间复杂度取最大值
  • 判断一个算法的效率时,往往只需要关注操作数量的最高次项,其它次要项和常数项可以忽略
  • 在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值