Complexity theory 如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行?

Complexity theory 如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行?,complexity-theory,big-o,time-complexity,big-theta,Complexity Theory,Big O,Time Complexity,Big Theta,如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行? 根据θ的定义,似乎没有输入将在O(n)中运行。然而,有人说这是可能的 我真的无法想象一个运行在θ(n^2)中的算法会有一个运行在O(n)中的输入 如果是真的,你能给我解释一下并给我举个例子吗 非常感谢 如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行 不,原因是这样的。假设算法的运行时间是f(n)。既然f(n)=Θ(n)那么我们将有一些常数c0>0和n0>0,这样c0*n^2=

如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行? 根据θ的定义,似乎没有输入将在O(n)中运行。然而,有人说这是可能的

我真的无法想象一个运行在θ(n^2)中的算法会有一个运行在O(n)中的输入

如果是真的,你能给我解释一下并给我举个例子吗

非常感谢

如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行

不,原因是这样的。假设算法的运行时间是
f(n)
。既然
f(n)=Θ(n)
那么我们将有一些常数
c0>0
n0>0
,这样
c0*n^2=n0
。让我们假设
f(n)=O(n)
。这意味着对于某些常数
c1>0,n1>0,我们将得到
f(n)=n1
。那么对于
n>=max(n1,n2)
我们将
c0*n^2我的理解是,虽然大Oh只表示上界,大θ表示上界和下界。根据定义,如果某物在
theta(n^2)
中执行,则没有性能为
theta(n)
的输入


注:这些都是指渐近复杂性。算法可以在较小的输入上执行不同的操作,也就是说,在
theta(n^2)
中运行的算法可能比在
theta(n)
中运行的算法(在较小的输入上)表现得更好,因为隐藏的常数因子

我觉得你的术语把你绊倒了

算法不能是“Θ(n2)”。θ表示法描述函数的增长率。您可以说算法的运行时间是Θ(n2),在这种情况下,算法无法在时间O(n)内对任何输入运行,或者您可以说算法的最坏情况运行时间是Θ(n2),在这种情况下,可以想象算法可能会在时间O(n)内对某些输入运行(例如,采用插入排序)


希望这有帮助

你的意思是:一次输入?(一个例子还是什么?)