【问题标题】:Median of median algorithm recurrence relation中值算法递归关系的中值
【发布时间】:2015-04-06 04:36:16
【问题描述】:

我知道线性选择(中位数算法的中位数)递推方程如下:

T(n) <= an + T(n/5) + T(7n/10)

但是这些术语是从哪里来的呢?我一直在试图理解,但我非常困惑。任何人都可以解释一下吗?

【问题讨论】:

    标签: sorting recursion recurrence quickselect median-of-medians


    【解决方案1】:

    最佳尝试:

    该等式仅适用于当您计算 5 组的中位数时。否则它会改变。等式的一部分是算法遍历所有元素并将它们分组为 5 所需的时间。T(n/5) 是为每组 5 找到中值所需的时间。因为有 n/5 组,每组 5 个。

    T(7n/10) 需要更多时间...

    当您计算中位数的中位数时,元素被分成 4 个象限。 3/10 的元素大于中位数的中位数,3/10 的元素小于中位数的中位数。另一个 4/10 分成 2 组,每组 2/10。这些是您不确定它们是否大于或小于中位数中位数的元素。因此,您可以拥有的大于或小于中位数中位数的元素的最大数量为 3/10 + 2/10 + 2/10 = 7/10。因此,T(7n/10) 是继续方程的一部分,其中最大数字段大于/小于中位数的中位数....

    希望那是有道理的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-28
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2016-01-20
      相关资源
      最近更新 更多