首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间复杂度

时间复杂度
EN

Stack Overflow用户
提问于 2010-12-09 21:59:47
回答 2查看 302关注 0票数 1

嗨,我有一个问题:

假设我有T(n) = m * n^2 (n<m),这样写T(n) = O(m)正确吗?因为我写了T(n) = m*n*n所以因为n<m我们有T(n) = O(m)谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 22:11:37

不,你能做的最好的事情就是写T(n,m) = O(m^3)n < m是一个非常弱的条件,基本上只会给你n in O(m)。例如,n可以始终为m-1

编辑:我的第一个答案是不精确的,因为T只是n中的一个函数。如果m是常数,答案仍然成立,但O(m^3)等于O(1)。

票数 2
EN

Stack Overflow用户

发布于 2010-12-09 22:28:08

我相信在这种情况下T(n) = O(n^2)

big-O的formal definition

f(x) = O(g(x))当且仅当存在一个正实数M和一个实数x0使得对所有x> x0 |f(x)|≤M|g(x)|。

在您的情况下,T(n)将始终小于或等于m(n^2)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4398986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档