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

时间:2013-01-09 18:07:39

标签: algorithm big-o

big-O符号是做得最好,最差,和最好的工具吗?算法的平均案例分析? 或者只是最坏情况分析的大O,因为它是一个上界函数?

2 个答案:

答案 0 :(得分:1)

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

算法的最佳,最差和平均情况都可以用Big O表示法表示。

有关应用于排序算法的示例,请参阅

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

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

答案 1 :(得分:1)

大“O”是渐近复杂度的度量,也就是说,大致如何算法随着N变得非常大而缩放。

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

符号本身并没有传达这一点,你如何使用它。


  

...或者只是最坏情况分析的大O ...

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

如果给出最佳案例和最坏情况的复杂性,它会告诉读者它们之间的区别。

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