为什么主定理只有 return Theta?
Why does the Master Theorem only return Theta?
查看递归主定理的三个案例。然后它总是 returns 一个 theta。
这让我想知道这是否意味着它只能找到具有 theta 的函数的 运行 时间?
如果是,那么确保重复出现的约束 a>=1 和 b>1 是否完全具有 theta?
例如,Mergesort 的循环可以使用 Master 定理,但对于 Quicksort 的循环则不能,因为 Quicksort 没有 theta,只有 Omega 和大 O 变化。是这样吗?
大定理只是告诉你形式 T(n) = a * T(n/b) + f(n)
递归的复杂性。这与算法无关。它只是一个数学表达式,如果您知道 a
、b
和 f
,您就可以准确计算它。所以它也有一个精确的复杂度,用 Θ
.
表示
另外 "functions having a theta" 也没有多大意义。 Functions/algorithms 具有复杂性,这种复杂性可以用一个或多个输入参数来表示。您可以为每种算法分析许多不同的复杂性:最坏情况、最佳情况、平均情况、平滑的复杂性等等。这些复杂性可以有上限和下限,有时上限和下限是相同的。可以使用大 O 表示法简化此界限。
因此,将其转换为您的 Quicksort 示例:
它有最坏情况 O(n²)
和最好情况 Ω(n log n)
和平均情况 Θ(n log n)
(如果你选择正确的方式)。
查看递归主定理的三个案例。然后它总是 returns 一个 theta。
这让我想知道这是否意味着它只能找到具有 theta 的函数的 运行 时间?
如果是,那么确保重复出现的约束 a>=1 和 b>1 是否完全具有 theta?
例如,Mergesort 的循环可以使用 Master 定理,但对于 Quicksort 的循环则不能,因为 Quicksort 没有 theta,只有 Omega 和大 O 变化。是这样吗?
大定理只是告诉你形式 T(n) = a * T(n/b) + f(n)
递归的复杂性。这与算法无关。它只是一个数学表达式,如果您知道 a
、b
和 f
,您就可以准确计算它。所以它也有一个精确的复杂度,用 Θ
.
另外 "functions having a theta" 也没有多大意义。 Functions/algorithms 具有复杂性,这种复杂性可以用一个或多个输入参数来表示。您可以为每种算法分析许多不同的复杂性:最坏情况、最佳情况、平均情况、平滑的复杂性等等。这些复杂性可以有上限和下限,有时上限和下限是相同的。可以使用大 O 表示法简化此界限。
因此,将其转换为您的 Quicksort 示例:
它有最坏情况 O(n²)
和最好情况 Ω(n log n)
和平均情况 Θ(n log n)
(如果你选择正确的方式)。