Performance 大O,θ和ω表示法

Performance 大O,θ和ω表示法,performance,big-o,time-complexity,asymptotic-complexity,Performance,Big O,Time Complexity,Asymptotic Complexity,我真的很困惑大O,大θ和大ω代表什么:最佳情况,最坏情况和平均情况,或者上界和下界 如果答案是上界和下界,那么谁的上界和下界?例如,让我们考虑一个算法。那么它是否有三种不同的表达式或增长率,对于最佳情况、较低情况和平均情况,对于每种情况,我们可以找到它是大O,θ和ω 最后,我们知道通过分治算法进行合并排序的增长率或时间复杂度为n*log(n),那么它是最佳情况下的增长率还是最坏情况下的增长率,以及如何将大O、θ和ω与此联系起来。请你用一个假设的表达式来解释一下。所以这个想法是O表示“平均”,一个

我真的很困惑大O,大θ和大ω代表什么:最佳情况,最坏情况和平均情况,或者上界和下界

如果答案是上界和下界,那么谁的上界和下界?例如,让我们考虑一个算法。那么它是否有三种不同的表达式或增长率,对于最佳情况、较低情况和平均情况,对于每种情况,我们可以找到它是大O,θ和ω


最后,我们知道通过分治算法进行合并排序的增长率或时间复杂度为n*log(n),那么它是最佳情况下的增长率还是最坏情况下的增长率,以及如何将大O、θ和ω与此联系起来。请你用一个假设的表达式来解释一下。

所以这个想法是O表示“平均”,一个表示最好的情况,一个表示最坏的情况。例如,让我们想想大多数排序算法。如果项目已按顺序排列,则大多数会在n时间内排序。你只要检查一下它们是否整齐。所有人都有一个最坏的顺序,他们必须做大部分的工作来订购所有的东西

因此,O表示“平均”,一个表示最好的情况,一个表示最坏的情况。例如,让我们想想大多数排序算法。如果项目已按顺序排列,则大多数会在n时间内排序。你只要检查一下它们是否整齐。所有人都有一个最坏的顺序,他们必须做大部分的工作来订购所有的东西

因此,O表示“平均”,一个表示最好的情况,一个表示最坏的情况。例如,让我们想想大多数排序算法。如果项目已按顺序排列,则大多数会在n时间内排序。你只要检查一下它们是否整齐。所有人都有一个最坏的顺序,他们必须做大部分的工作来订购所有的东西

因此,O表示“平均”,一个表示最好的情况,一个表示最坏的情况。例如,让我们想想大多数排序算法。如果项目已按顺序排列,则大多数会在n时间内排序。你只要检查一下它们是否整齐。所有人都有一个最坏的顺序,他们必须做大部分的工作来订购所有的东西

符号都是关于渐近增长的。他们是否解释了最坏的情况或平均情况只取决于你所说的应该表达什么

例如,快速排序是一种用于排序的随机算法。假设我们使用它,并且总是选择列表中的第一个元素作为轴心。然后存在长度为
n
(对于所有
n
)的输入,因此最坏的情况是
O(n²)
。但在随机列表中,平均情况是
O(n logn)

所以这里我用大O来表示平均和最坏的情况

基本上,这个符号是为了简化。如果你有一个精确执行
5n³-4n²-3logn
步骤的算法,你可以简单地编写
O(n³)
,然后去掉
之后的所有垃圾,也可以忘记常数

你可以用大O去掉所有的单项式,除了指数最大的单项式和所有常数因子(常数表示它们不增长,但10100也是常数)

最后你会得到一组函数,它们都有上界(这意味着
g(n)
O(f(n))
,如果你能找到一个常数
c
,使得
g(n)≤ C⋅f(n)

让它变得更简单:
我已经解释过,大O表示上限,但不严格。所以
O(n³)
中,但也在
中。 所以你可以把大O看作是一个“较低的相等值”

你可以用同样的方法处理其他人

小o是一个严格的下限:
o(n³)
中,但
不是。
大ω是一个“更大的相等物”:
Ω(n³)
n中⁴
小ω是严格意义上的“大”:
不是在
ω(n³)
中,而是在
n中⁴是。
大θ类似于“相等”,所以n³在
Θ(n³)
中,但既不是
也不是
n⁴


我希望这能有所帮助。

这些符号都是关于渐进增长的。他们是否解释了最坏的情况或平均情况只取决于你所说的应该表达什么

例如,快速排序是一种用于排序的随机算法。假设我们使用它,并且总是选择列表中的第一个元素作为轴心。然后存在长度为
n
(对于所有
n
)的输入,因此最坏的情况是
O(n²)
。但在随机列表中,平均情况是
O(n logn)

所以这里我用大O来表示平均和最坏的情况

基本上,这个符号是为了简化。如果你有一个精确执行
5n³-4n²-3logn
步骤的算法,你可以简单地编写
O(n³)
,然后去掉
之后的所有垃圾,也可以忘记常数

你可以用大O去掉所有的单项式,除了指数最大的单项式和所有常数因子(常数表示它们不增长,但10100也是常数)

最后你会得到一组函数,它们都有上界(这意味着
g(n)
O(f(n))
,如果你能找到一个常数
c
,使得
g(n)≤ C⋅f(n)

让它变得更简单:
我已经解释过,大O表示上限,但不严格。所以
O(n³)
中,但也在
中。 所以你可以把大O看作是一个“较低的相等值”

你可以用同样的方法处理其他人

小o是一个严格的下限:
o(n³)
中,但
不是。
大ω是一个“更大的相等物”:
Ω(n³)
n中⁴
小欧米茄是严格意义上的“大”:
不在