楽しみのために、k=3の場合にkwayマージソートを実装しようとしています。再帰的にmergesortを呼び出すのに問題はありませんが、3つのリストを一緒にマージしようとしていますが、ソートされたリストを取得できません。基本的な考え方は、すべてのリストの最初の要素を比較し、それが最小の場合はリストに追加することです。すべてのアレイに対してこのプロセスを繰り返します。
def three_merge(a,b,c):
i =0
j =0
k=0
list = []
while(i < len(a) or j < len(b) or k < len(c)):
while(a[i] <= b[j] and a[i] <= c[k]):
list.append(a[i])
i=i+1
print i
while(b[j] <= a[i] and b[j] <= c[k]):
list.append(b[j])
j=j+1
print j
while(c[k] <= a[i] and c[k] <= b[j]):
list.append(c[k])
k=k+1
print k
return list
a = [1,2]
b = [-5,10]
c = [-11, 100]
print three_merge(a,b,c)