【发布时间】:2021-12-04 20:15:54
【问题描述】:
我对许多声称渐近符号与最佳情况、平均情况和最坏情况时间复杂度无关的说法感到困惑。如果是这种情况,那么大概以下组合都是有效的:
时间复杂度 O(n)
- 最佳情况 - 最佳情况输入的上限
为了尽可能最好的输入,这个算法执行的基本操作的数量永远不会超过 n 的某个常数倍数。
- 平均案例 - 平均案例输入的上限
对于平均输入,此算法执行的基本操作的数量永远不会超过 n 的某个恒定倍数。
- 最坏情况 - 最坏情况输入的上限
对于最坏的可能输入,该算法执行的基本操作的数量永远不会超过 n 的某个恒定倍数。
时间复杂度:Ө(n)
- 最佳案例 - 最佳案例输入的严格限制
为了尽可能获得最佳输入,该算法执行的基本操作的数量永远不会超过或小于 n 的某个常数倍数。
- 平均案例 - 平均案例输入的严格限制
对于平均输入,此算法执行的基本操作的数量永远不会超过或小于 n 的某个恒定倍数。
- 最坏情况 - 最坏情况输入的严格限制
对于最坏的可能输入,此算法执行的基本操作的数量永远不会超过或小于 n 的某个恒定倍数。
时间复杂度:Ω(n)
- 最佳情况 - 最佳情况输入的下限
为了尽可能最好的输入,这个算法执行的基本操作的数量永远不会少于 n 的某个常数倍数。
- 平均案例 - 平均案例输入的下限
对于平均输入,该算法执行的基本操作的数量永远不会少于 n 的某个恒定倍数。
- 最坏情况 - 最坏情况输入的下限
对于最坏的可能输入,此算法执行的基本操作的数量永远不会少于 n 的某个恒定倍数。
以上哪项有意义?在根据输入增长时执行时间来评估算法的效率时,通常在实践中使用哪些?据我所知,其中有几个是多余的和/或矛盾的。
我真的没有看到上限、严格和下限的概念与最佳、平均和最坏情况输入无关。这是我研究得越深入,我就越困惑的那些话题之一。如果有人能帮我澄清一下这个问题,我将不胜感激。
【问题讨论】:
-
我觉得这个问题最好在这里问:cs.stackexchange.com
-
所有这些都有意义。您认为哪些是多余和/或矛盾的,为什么?
-
此问题已回答here on cs.stackexchange.com。
-
@kaya3 例如,任何知道输入是最好或最坏情况的,不应该严格限制,因为“质量”的范围没有歧义“的输入?从我有限的角度来看,这将使 1)、3)、4)、6)、7) 和 9) 没有实际用途。你能帮助我进一步了解我缺少什么吗?
-
当然,在任何情况下,您都会总是更喜欢一定要紧。但更严格的界限通常更难证明。