python 中的合并排序
MergeSort in python
def merge(A,l,m,r):
i = l
j = m+1
new = []
while i <= m and j <= r:
if A[i] <= A[j]:
new.append(A[i])
i += 1
else:
new.append(A[j])
j += 1
while i <= m:
new.append(A[i])
i += 1
while j <= r:
new.append(A[j])
j += 1
return new
此功能因错误而无法使用,您能帮我了解错误是什么以及如何解决吗?
这个说法没有意义:
return new
因为你无处使用函数的return。所以函数 merge()
什么都不做。
我相信您需要直接在函数内部更改数组 A
。无需创建 return new
数组。
def merge(A,l,m,r):
i = l
j = m+1
new = []
while i <= m and j <= r:
if A[i] <= A[j]:
new.append(A[i])
i += 1
else:
new.append(A[j])
j += 1
while i <= m:
new.append(A[i])
i += 1
while j <= r:
new.append(A[j])
j += 1
return new
此功能因错误而无法使用,您能帮我了解错误是什么以及如何解决吗?
这个说法没有意义:
return new
因为你无处使用函数的return。所以函数 merge()
什么都不做。
我相信您需要直接在函数内部更改数组 A
。无需创建 return new
数组。