我正在尝试学习算法分析,但我陷入了asymptotic notation(大O...)和cases(最佳、最差和平均)之间的关系。
我了解到该Big O符号定义了算法的上限,即它定义函数的增长不能超过其上限。
起初,我觉得它计算的是最坏的情况。我谷歌了一下(为什么最坏的情况不是大O?)并得到了大量的答案,这些答案对于初学者来说并不那么容易理解。
我的结论如下:
Big O并不总是用来表示算法的最坏情况分析,因为,假设一个算法对最佳、平均和最差输入采取 O(n) 执行步骤,那么它的最佳、平均和最坏情况可以表示为 O (n)。
请告诉我我是否正确或者我遗漏了什么,因为我没有人来验证我的理解。请提出一个更好的例子来理解为什么Big O并不总是如此worst case。