私たちの多くは、mergesort の merge サブルーチンについて知っています。ここで、Pythonで:
def merge(left, right):
result = []
i ,j = 0, 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
追加の配列なしresult
で (この場合はなしで) マージを記述できる方法はありますか? 文字列 $s = xy = (y^Rx^R)^R$ (R は逆を意味する) が役に立たないという事実を利用しようとしました。
このインプレース バージョンのマージでは、2 つの入力サブ配列が隣接していると想定されます。(3 つの入力インデックス i、j、k の場合、最初の配列は [i, j) から、2 番目の配列は [j, k) から取得できます。)
ところで、私は C++ や Java などの Python 以外の言語を使用することにオープンです。