Algorithm 中位数算法中的常数5从何而来?

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”从何而来,但似乎找不到一个简单的描述,说明它是如何推导出来的,以及为什么它是最优的

例如,为什么说7不是一个可行的选择


我能看到的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块的中值工作量更大。因此,更常用五格块


希望这有帮助

很好,这就很好地解释了!