Big o 是一个渐进运行时复杂度为θ的算法;(n) 始终比运行时复杂度为θ的类似算法运行时更快;(n^2)?

Big o 是一个渐进运行时复杂度为θ的算法;(n) 始终比运行时复杂度为θ的类似算法运行时更快;(n^2)?,big-o,quicksort,asymptotic-complexity,big-theta,Big O,Quicksort,Asymptotic Complexity,Big Theta,如果是,你能提供明确的例子吗?我知道像Quicksort这样的算法可以有O(n logn)的预期运行时间,但在更坏的情况下是O(n^2)。我假设,如果预期/最坏情况的相同原则适用于θ,那么上述问题可能是错误的。了解θ的工作原理将有助于我理解θ和big-O之间的关系。当$n$足够大时,复杂度为$\theta(n)$的算法将比复杂度为$\theta(n^2)$的算法运行得更快。实际上$\theta(n)/\theta(n^2)\to 0$作为$\theta\to\infty$。然而,可能存在$n$的

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

当$n$足够大时,复杂度为$\theta(n)$的算法将比复杂度为$\theta(n^2)$的算法运行得更快。实际上$\theta(n)/\theta(n^2)\to 0$作为$\theta\to\infty$。然而,可能存在$n$的值,其中$\theta(n)>\theta(n^2)$。

它并不总是快,只是逐渐快(当
n
无限增长时)。但是经过一些
n
-是的,它总是更快

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

这与预期/最坏情况无关:选择一个情况是另一个与θ或大O无关的问题


关于θ和big-O之间的关系:在计算机科学中,big-O经常(错误地)用在θ的意义上,但严格意义上,big-O是一个比θ更广泛的类:它只限制增长函数的上界,而θ限制两个界。例如,当有人说快速排序的复杂性为O(n logn)时,他实际上是指θ(n logn)。

你的思路是正确的。

程序的实际运行时间可能与渐近界限大不相同。这是一个基本概念,源自于渐近符号的定义方式。
你可以阅读我的答案来澄清