big-o - big-O符号是算法的最佳,最差和平均案例分析的工具吗?



大0符号是一种工具吗?算法的平均案例分析?或者大0只适用于最坏情况分析,因为它是一个上限函数?

它是大O,因为数量级表示为O(n), O(logN)等

算法的最佳、最差和平均情况都可以用大0表示。

一个应用于排序算法的例子,见

http://en.wikipedia.org/wiki/Sorting_algorithm Comparison_of_algorithms

请注意,算法可以根据多个独立的标准进行分类,例如内存使用或CPU使用。通常,在两个或多个标准之间存在权衡(例如,使用少量CPU的算法可能使用相当多的内存)。

大"O"是渐近复杂度的度量,也就是说,当N变得非常大时,算法的扩展大致如何。

If best &更糟糕的是收敛到相同的渐近复杂度,您可以使用单个值-或者您可以分别计算它们(例如,一些排序算法在排序或几乎排序的数据上具有与未排序数据完全不同的特征)。

符号本身并不能传达这一点,但你如何使用它可以。


…或者大o只用于最坏情况分析…

如果你只给出一个算法的渐近复杂度,它不会告诉读者最佳和最差情况是否(或如何)与平均值不同。

如果你给出最好情况和最坏情况的复杂性,它会告诉读者它们的不同之处。

默认情况下,如果列出单个值,则可能是平均复杂度,可能(也可能不)与最坏情况收敛。

最新更新