【问题标题】:Finding block median in median of medians algorithm在中位数算法中查找块中位数
【发布时间】:2018-10-15 09:57:14
【问题描述】:

我知道中位数算法的中位数公式是: T(n)<= T(0.7n)+T(0.2n)+O(n)O(n) 来自于找到每个块的中位数(大小为 5),我想知道为什么需要 O(n) 才能找到每个块的中位数.. 听起来像找到一个块的中位数需要 @ 987654323@。怎么可能?

【问题讨论】:

    标签: algorithm sorting median median-of-medians


    【解决方案1】:

    每个块的大小是恒定的 (5)。因此,找到每个块的中位数在O(1) 中(对O(1) 中的块进行排序,并将中间索引作为中位数)。因此,找到所有块的中位数在O(n)。然后找到在your other question 中回答的每个块的中位数的中位数。

    【讨论】:

    • 我不明白为什么如果块大小是恒定的,为什么需要 O(1) 时间。你能解释一下吗?
    • @JiseopHan 在 O(1) 中对块进行排序,并将中间索引作为块的中位数。
    • @OmG 我们如何用 O(1) 时间对 5 的数组大小进行排序?
    • @meowgoesthedog 用于查找中位数的中位数。这部分的复杂度见c*n
    • @JiseopHan 排序的复杂度是n log n。因此,您可以在 5 log 5 中执行此操作,其中是常量
    猜你喜欢
    • 2015-07-22
    • 2021-08-17
    • 2012-02-18
    • 2021-11-14
    • 2015-08-07
    • 2020-05-04
    • 2012-01-18
    • 2012-09-14
    • 1970-01-01
    相关资源
    最近更新 更多