对于算法,边界与最佳/最差情况有何关系?最坏情况是上限的同义词,最坏情况是下限的同义词吗?或者您至少可以从另一个中得出一个吗?还是它们根本没有关系?
是的,它可以表示最坏情况与上限同义,最佳情况与下限同义。
最坏情况性能是算法分析中最常用的。在最坏情况分析中,我们保证算法运行时间的上限,这是很好的信息。换句话说,我们必须找到导致执行最大操作数的执行。而在最佳情况下分析中,我们计算算法运行时间的下限。我们必须知道导致执行最少操作数的情况。
关于您的最后一个问题,是的,我们可以使用平均情况指标来挤压/求解最坏情况或最佳情况。设 O、Θ、Ω分别表示最坏情况、平均情况和最佳情况,f(n) 和 g(n) 两个任意函数。
1) 如果 f(n) = O(g(n)) 且 f(n) = Θ(g(n))==> f(n) = Ω(g(n))
2) 如果
在最坏情况分析中,我们计算算法运行时间的上限。我们必须知道导致执行最大操作数的情况。对于线性搜索,最坏的情况发生在数组中不存在要搜索的元素(上面代码中的 x)时。大多数时候,我们进行最坏情况分析来分析算法。在最坏的分析中,我们保证算法的运行时间上限,这是很好的信息。
在最佳情况分析中,我们计算算法运行时间的下限。我们必须知道导致执行最少操作数的情况。在线性搜索问题中,当 x 出现在第一个位置时,会出现最佳情况。最佳案例分析是虚假的。保证算法的下限不会提供任何信息,因为在最坏的情况下,算法可能需要数年才能运行。