正在回答 回答被采纳积分+1
1回答
liuyubobobo
2020-09-29 03:43:45
当 n 逐渐增大的时候,n^2 的曲线会远远在 n 的上面,所以,一个时间中含 n^2 的算法,我们不能说成是 O(n)。这就是“上界”的意思。
网上随便搜了一个 n^2, nlogn,n 和 logn 的曲线,可以参考:
更严谨的关于时间复杂度的数学定义,这个课程没有引入,因为我不想让大家被数学绕晕,同时,这确实不是刚开始学习算法的重点。但如果你对时间复杂度,更准确的说,是大 O 的严格的数学定义感兴趣,大 O 是这么定义的:
对于一个算法,假设他的运行时间是 t(n),我们说这个算法的复杂度是 O(f(n)) 的,是指存在一个常数 c 和 n0,保证在 n >= n0 的条件下,t(n) <= cf(n) 恒成立。
对这个数学定义更深入的分析,我建议阅读《算法导论》。但依然是,我不建议算法入门的时候读《算法导论》,或者在复杂度分析的严谨数学上花太多时间,有一个感性认识就够了。基础算法掌握得差不多以后,如果感兴趣,可以再深入诸如《算法导论》这样理论化程度比较高的教材。
继续加油!:)
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星