Algorithm 中位数算法中的常数5从何而来?
我一直试图理解“5”从何而来,但似乎找不到一个简单的描述,说明它是如何推导出来的,以及为什么它是最优的 例如,为什么说7不是一个可行的选择Algorithm 中位数算法中的常数5从何而来?,algorithm,computation-theory,median-of-medians,Algorithm,Computation Theory,Median Of Medians,我一直试图理解“5”从何而来,但似乎找不到一个简单的描述,说明它是如何推导出来的,以及为什么它是最优的 例如,为什么说7不是一个可行的选择 我能看到的5的唯一优点是,它在中间的两边各有2个项目,对5个项目进行排序,这是一个不超过3次交换的简单情况。选择5是因为它是递归解为O(n)的最小值。7也可以工作,但速度往往较慢 更具体地说:如果将输入分解为大小为5的块,则会得到以下结果: T(n)≤ T(n/5)+T(7n/10)+O(n) 这解为O(n),因为功在每级几何衰减 如果我们使用大小为3的块,
我能看到的5的唯一优点是,它在中间的两边各有2个项目,对5个项目进行排序,这是一个不超过3次交换的简单情况。选择5是因为它是递归解为O(n)的最小值。7也可以工作,但速度往往较慢 更具体地说:如果将输入分解为大小为5的块,则会得到以下结果: T(n)≤ T(n/5)+T(7n/10)+O(n) 这解为O(n),因为功在每级几何衰减 如果我们使用大小为3的块,我们得到 T(n)≥ T(n/3)+T(2n/3)+O(n) 它解为Ω(n logn) 选择大小为7的块可以 T(n)≤ T(n/7)+T(5n/7)+O(n) 这也解为O(n),因为功是几何衰减的。然而,big-O项中的常数大于5,因为排序和取大小为7的n/7块的中值比排序和取大小为5的n/5块的中值工作量更大。因此,更常用五格块
希望这有帮助 很好,这就很好地解释了!