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