时间复杂度的定义,记号以及几种计算方法

时间复杂度在关心些什么

如果接触过算法,那么对于算法的时间复杂度分析一定不陌生,因为时间复杂度是算法优劣的一个重要评价标准。

对于一个算法,我们不光关心它在某个规模输入的情况下耗时多少,我们更关心的是,当输入规模疯狂增长的时候,算法耗时增加多少,是按线性形式增加的?指数增加的?对数形式增加的?比如当你的算法接收的输入规模从k个数变到nk个数时,你的耗时是增加了n倍(线性速度增加)?还是增加了n2倍(平方的速度)?还是增加了log(n)倍(对数形式增加)。

时间复杂度是一个函数,它描述了算法的运行时间,并且给出了运行时间与输入规模之间的关系。

时间复杂度的分析记号:O(), Ω(), Θ(),o(), w()

对于时间复杂度的分析,我们都是使用渐进分析,这种分析方法关注地核心就是算法耗时会如何随着输入规模增长?我们使用三种记号来说明这个问题。
我们使用字母n来表示输入的规模

1. O()

符号O()表示了一种上界的感觉,也是我们常说的大O表示法,O()在这三种符号中用得最多,因为涉及到时间复杂度分析,我们经常会考虑最坏情况,因为在代码的实际运用中,首先最坏情况发生的可能性还不小,其次我们需要衡量最坏情况发生的结果我们是否能接受。

它的定义也用到了极限的思想,因为渐进分析,就包含有当n趋于无穷的意思。如果学过数学分析,了解ε

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值