ここに、マージソートを使用してリストをソートするためのコードがあります..ネットのどこかで入手したばかりです..しかし、正直なところ、コードの流れをたどることができません...つまり、それがどのようになっているのかわかりません実装されました。一部の部分、特にリスト全体を2つに分割し、リストの両側をソートする最初の部分を理解できます。そして、何?? ここで何が起こっているのか教えてください。ありがとうございました。:)
def merge(badlist):
if len(badlist) == 1:
return badlist
m = len(badlist)/2
l = merge(badlist[:m])
r = merge(badlist[m:])
if not len(l) or not len(r):
return l or r
result = []
i = j = 0
while (len(result) < len(r) + len(l)):
if l[i] < r[j]:
result.append(l[i])
i += 1
else:
result.append(r[j])
j += 1
if i == len(l) or j == len(r):
result.extend(l[i:] or r[j:])
break
return result
print merge(badlist)