В разделе «Введение в алгоритмы» алгоритм сортировки слиянием реализован с помощью вспомогательной функции с именем 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?