与运行复杂度为θ(n ^ 2)的类似算法相比,θ(n)的渐近运行时复杂度的算法总是更快运行时间吗?

时间:2013-07-15 21:34:52

标签: big-o quicksort asymptotic-complexity big-theta

如果是这样,你能提供明确的例子吗?我知道像Quicksort这样的算法可以有O(n log n)预期的运行时间,但在更坏的情况下可以有O(n ^ 2)。我认为如果预期/最坏情况的相同原则适用于theta,那么上述问题可能是错误的。理解theta的工作方式将有助于我理解theta和big-O之间的关系。

3 个答案:

答案 0 :(得分:0)

当$ n $足够大时,复杂度为$ \ theta(n)$的算法将比复杂度为$ \ theta(n ^ 2)$的算法运行得更快。事实上$ \ theta(n)/ \ theta(n ^ 2)\到0 $为$ \ theta \ to \ infty $。但是,可能有$ n $的值,其中$ \ theta(n)> \ THETA(N ^ 2)$

答案 1 :(得分:0)

总是更快,只是渐近更快(当n无限增长时)。但在一些n之后 - 是的,它总是更快。

例如,对于小n,冒泡排序可能比快速排序运行得更快,因为它更简单(其θ具有更低的常量)。

这与预期/最坏情况无关:选择案例是另一个与theta或big-O无关的问题。

关于theta和big-O之间的关系:在计算机科学中,big-O通常(mis)用于θ的意义上,但是在严格意义上,big-O比θ更宽泛:它限制只有增长函数的上界,而theta限制两个界限。例如。当有人说Quicksort的复杂度为O(n log n)时,他实际上意味着θ(n log n)。

答案 2 :(得分:0)

你的思路正确。

程序的实际运行时间可以与渐近边界完全不同。这是一种基本概念,它源于渐近符号的定义方式。
您可以阅读我的回答here以澄清。