微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

时间复杂度 - 增长顺序

如何解决时间复杂度 - 增长顺序

我刚刚开始学习成长的顺序,在文中找到了下面的练习。

我们有下面的等式,

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 举报,一经查实,本站将立刻删除。