时间复杂度求的是运行的上界

时间复杂度求的是运行的上界

时间复杂度求的是运行的上界,什么是上界,怎么理解

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2020-09-29 03:43:45

当 n 逐渐增大的时候,n^2 的曲线会远远在 n 的上面,所以,一个时间中含 n^2 的算法,我们不能说成是 O(n)。这就是“上界”的意思。


网上随便搜了一个 n^2, nlogn,n 和 logn 的曲线,可以参考:

http://img1.sycdn.imooc.com//climg/5f723b210abf512005120367.jpg


更严谨的关于时间复杂度的数学定义,这个课程没有引入,因为我不想让大家被数学绕晕,同时,这确实不是刚开始学习算法的重点。但如果你对时间复杂度,更准确的说,是大 O 的严格的数学定义感兴趣,大 O 是这么定义的:


对于一个算法,假设他的运行时间是 t(n),我们说这个算法的复杂度是 O(f(n)) 的,是指存在一个常数 c 和 n0,保证在 n >= n0 的条件下,t(n) <= cf(n) 恒成立。


对这个数学定义更深入的分析,我建议阅读《算法导论》。但依然是,我不建议算法入门的时候读《算法导论》,或者在复杂度分析的严谨数学上花太多时间,有一个感性认识就够了。基础算法掌握得差不多以后,如果感兴趣,可以再深入诸如《算法导论》这样理论化程度比较高的教材。


继续加油!:)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2589    人
  • 解答问题       1090    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师