让A
成为具有要排序的总订单的数组。我们说A
具有位置d
iff每个元素最多距离其排序数组中的最终索引d
索引。在locality-aware mergesort中,我们只需考虑左子阵列中最中间的2d
元素和最左边的d
元素,而不是完全合并这两个子数组。正确的子阵列),因为其他元素必须处于最终位置。问题是如何证明局部感知mergesort的渐近时间性能是d
。
其他排序算法有局部感知版本;本地感知mergesort的性能是我唯一不理解的。
答案 0 :(得分:1)
嗯,这是有道理的。如果你考虑一下:merge sort是O(nlog n),对于每个元素(n个元素),它最多需要log n次迭代才能使它在数组中的位置(项目可以“旅行的最大距离) “是n)。对于你的例子,它只是log d,因为物品可以行进的距离是d。至少这就是我的看法。