【问题标题】:locality-aware Mergesort位置感知合并排序
【发布时间】:2014-10-06 03:00:22
【问题描述】:

A 是一个具有要排序的总顺序的数组。我们说A 具有局部性d iff 每个元素最多d 索引远离其在排序数组中的最终索引。在局部感知合并排序中,我们不需要完全合并两个子数组,而是只需要考虑中间的2d元素(左子数组中最右边的d元素和右子数组中最左边的d元素),因为其他元素必须在它们的最终位置。问题是如何证明局部感知合并排序的渐近时间性能是n log d

还有其他排序算法的位置感知版本;局部感知合并排序的性能是唯一我不明白的。

【问题讨论】:

标签: performance algorithm sorting


【解决方案1】:

嗯,这是有道理的。如果您考虑一下:合并排序是 O(nlog n),对于每个元素(n 个元素),最多需要 log n 次迭代才能使其在数组中的位置(一个项目可以“旅行的最大距离” " 是 n)。对于您的示例,它只会是 log d,因为该项目可以行进的距离上限为 d。至少我是这么看的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    相关资源
    最近更新 更多