Complexity theory 如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行?
如果算法时间复杂度为θ(n^2),那么对于一个输入,它是否可能以O(n)的形式运行? 根据θ的定义,似乎没有输入将在O(n)中运行。然而,有人说这是可能的 我真的无法想象一个运行在θ(n^2)中的算法会有一个运行在O(n)中的输入 如果是真的,你能给我解释一下并给我举个例子吗 非常感谢 如果算法时间复杂度为θ(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=
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)内对某些输入运行(例如,采用插入排序)
希望这有帮助 你的意思是:一次输入?(一个例子还是什么?)