【发布时间】:2011-09-09 12:40:55
【问题描述】:
我正在阅读一本关于算法的书,它在分析 shell 排序算法时提到如下:
Shellsort 的最坏情况运行时间,使用 Shell 的增量,是 Theta(n square)。
证明不仅需要显示最坏情况的上限 运行时间,但也表明存在一些输入 实际上将下限作为 Omeaga(n square) 运行时间。我们证明 首先是下界,通过构造一个坏的情况。
我上面的问题是:
- 为什么作者提到坏案例来检查下限?我教要获得下限,我们应该采取最好的情况, 请要求澄清上述内容。
谢谢!
【问题讨论】:
-
您可以在最坏、平均和最佳情况下要求上限 (Omicron)、下限 (Omega) 和两者 (Theta)。换句话说,边界与案例正交。
-
你能解释一下边界与案例正交是什么意思吗?
-
您可以为最佳、最差和平均情况分别设置 Omicron、Omega 和 Theta 界限。考虑一种算法,对于一个特定的输入是 Omega(n) 或 O(n log n),对于所有其他输入是 Theta(n^2),除了另一个输入是 Omega(n^3) 或 O(n ^3 日志 n)。当我说任何一个时,也许它是随机选择的;任何。如果您考虑一下,构建这样的算法将非常简单。
标签: algorithm sorting time-complexity shellsort