在“算法简介”中,合并排序算法使用名为MERGE(A, p, q, r)
的帮助程序函数实现 - 即合并两个先前排序的序列。合并排序:是否需要额外的阵列副本?
该功能引入了两个附加阵列L
和R
。
MERGE(A, p, q, r)
1 n1 ← q − p + 1
2 n2 ←r − q
3 create arrays L[1 . . n1 + 1] and R[1 . . n2 + 1]
.....
"create arrays L[1 . . n1 + 1] and R[1 . . n2 + 1]"
我知道为他们分配额外的内存。
是否可以重写这个函数,以便我不需要额外的内存,并直接操作到A?
另请参阅此问题:http://stackoverflow.com/questions/2571049/how-to-sort-in-place-using-the-merge-sort-algorithm – 2010-11-29 14:59:21