如何解决时间复杂度 - 增长顺序
我刚刚开始学习成长的顺序,在文中找到了下面的练习。
我们有下面的等式,
T(n) = 3n + 32n^3 + 767249999n^2 = O (?)
通常,我们去掉低阶项和常数,我们会得到 O(n^3)。但在这种情况下,常数 767249999 太大了,即使 n 的值非常大,也会使 n2 项更大。那么,这种关系的结果是 O(n^2) 还是 O(n^3)? 谢谢!
解决方法
结果为 O(n^3)
。这是因为对于足够大的 n
(无论是“小”、“大”还是“非常大”),术语 32n^3
支配 767249999n^2
。
根据定义,您需要任何常量 c
使得 cn^2
永远不会被 32n^3
支配,以便它在 O(n^2)
中。但这是不可能的,至于n > c/32
,你会发现32n^3 = 32n*n^2 > cn^2
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。