算法基础:大O表示法

大O表示法用于描述算法复杂度,表示算法运行时间的增速。例如,简单查找的时间复杂度为O(n),而二分查找为O()。大O表示法关注最糟糕情况下的运行时间,不考虑平均或最佳情况。常见运行时间从快到慢依次是:O()、O(n)、O(n*)、O()和O(n!)。它强调的是操作数的增速而非实际时间。
摘要由CSDN通过智能技术生成

本博客所有内容均整理自《算法图解》,欢迎讨论交流~

大家学习算法时不可避免地会遇见大O表示法,一般书上会解释说这个表示法是用来表示算法复杂度的,但是具体这个表示法是什么意思呢?又怎么比较不同的大O表示数值之间的关系呢?

其实大O表示法指出了算法有多快。例如,假设列表包含n个元素,简单查找需要检查每个元素,因此需要执行n次操作,使用大O表示法,这个运行时间为O(n),单位呢?没有——大O表示法并不是以秒或小时为单位的速度。大O表示法让你能够比较操作数,指出了算法运行时间的增速。

同样是检查长度为n的序列,二分查找需要执行log_{2}n次操作,所以使用大O表示法表示二分查找的运行速度即为O(log_{2}n)。

所以大O表示法的括号里表示的是算法需要执行的操作数

这里有一点需要注意,大O表示法的操作数总是指出最糟情况下的运行时间,而不是平均情况或最佳情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值