因此,我遇到了mergesort,并注意到中间点存储在正确的子数组中。为什么要这样做?这更有益吗?我试图找出来,但无法找到任何说明这一点的文件。
在为left和rgiht分配子数组时的Python示例
left = [] * midPoint
for i in range(midPoint):
left.append(array[i])
right = [] * (n - midPoint)
for i in range(midPoint, n):
right.append(array[i])
答案 0 :(得分:0)
当您将具有奇数值的数组划分为两个子数组时,哪个子数组(左或右)的值比另一个子数组的大小无关紧要。这只是一个实现细节。算法复杂度将保持不变-O(n * lg(n))。