【算法】时间复杂度/运行时间——大O表示法

对于所有算法,我们都要讨论其运行时间。一般而言,应该选择效率最高的算法,以最大程度地减少运行时间或占用空间。

大O表示法 是一种特殊的表示法,指出了算法的速度有多快。大O表示法 并不能表示具体算法任务运行的时间,这也没有意义,因为任务量总是在变。我们需要知道运行时间如何随任务量增长而增长,这正是大O法的用武之地。大O法表示指出了算法有多快。例如,假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间表示为O(n)。并没有时间单位s,这是因为大O法指的并非以秒为单位的速度。大O表示法让你能够比较操作次数,它指出了算法运行时间的增速。如果换用二分法检查长为n的列表,二分查找需要执行log n次操作。使用大O表示法这个的运行时间则为O(log n)

大O表示法 指出了最糟糕情况下的运行时间。假设你在使用简单查找电话簿中的人,查找Adit时,一次就找到了,这是最佳的情形,但大O表示法说的是最糟糕的情形。因此,你可以说,在最糟糕的的情况下,必须查看电话簿中的每一个条目,对应的运行时间为O(n)。这是一个保证——你知道简单查找的运行时间不可能超过O(n)另外,除了最糟糕情况下的运行时间,还应考虑平均情况的运行时间,这也很重要。

下面按从快到慢的顺序列出经常会遇到的5种大O运行时间:

  • O(l
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值