私は最近pythonを学ぶことにしました!次のコードを使用して簡単なマージソートを書きたいと思います:
def mergeSort(lst):
l = len(lst)
if l <= 0:
print("empty")
return None
elif l == 1:
return lst
half = int(l / 2)
m = lst[half]
print(half, m)
left = []
right = []
for n in lst:
if n < m:
left.append(n)
else:
right.append(n)
left = mergeSort(left)
right = mergeSort(right)
return merge(left, right)
残念ながら、このコードは、[1 1 1] などのリストを処理する必要がある場合、無限ループを生成します。この間違った動作を修正する方法を提案できますか?