请问时间频度和时间复杂度是一个概念吗?

2017-08-20 22:26:43 +08:00
 Doragd

这两段话来源于

http://www.cnblogs.com/yuzhuwei/p/4178370.html

http://www.cnblogs.com/dzhs/p/5415961.html

等多个 blog

那么请问这两者是一个概念吗?如果不是,那么为什么都用 T(n)表示呢?

谢谢大家帮忙解答

注: 通过搜索以后,给的答案普遍没有解释 T(n)这个记号的问题,另外,也有看到时间频度用 f(n)表示,所以更加困惑了

3296 次点击
所在节点    程序员
4 条回复
geelaw
2017-08-20 22:29:55 +08:00
如果一个语句的时间是常数那就没啥区别
Doragd
2017-08-20 22:31:49 +08:00
@geelaw 抛开概念的问题,我的理解是如果 T(n) = n^2 + 2*n 的话,那么复杂度就是 O(n^2) 忽略了低阶项,但是我还是不明白概念上为什么这两者记号相同呢?
geelaw
2017-08-21 03:30:23 +08:00
@Doragd 因为 T(n)=O(n^2) 的意思是 T(n) 属于 O(n^2),后者是一个集合。

这里的 T(n) 是具体的复杂度,而 O(n^2) 是渐近复杂度,并不相同。

此外你给出的 O 的定义是错误的,T/f 不一定要有极限,更习惯的方式是直接用不等式,这可以覆盖 T、f 偶尔为 0 的情况,或者用商的绝对值的上下极限。
Doragd
2017-08-21 08:46:45 +08:00
@geelaw 嗯嗯!!我懂了 T(N)=O(N)其实是一个记号 并不是指两者相等 而是指 T 的上界是常数倍的 N 谢谢您!!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX