【发布时间】:2020-10-12 07:56:43
【问题描述】:
我需要使用 Python 3 实现合并排序。我编写了它。但它没有给出正确的输出。请问有人可以查吗? 这是我的代码,
def mergeSort(A, p, r):
if p < r:
q = (p + r) // 2
mergeSort(A, p, q)
mergeSort(A, q+1, r)
Merge(A, p, q, r)
def Merge(A, p, q, r):
i = 1
j = q+1
k = 0
TEMP = [0] * (r+1)
while i <= q and j <= r:
if A[i] <= A[j]:
TEMP[k] = A[i]
k += 1
i += 1
else:
TEMP[k] = A[j]
k += 1
j += 1
if (j > r) :
for t in range(0, q-1):
A[r-t] = A[q-t]
for t in range(0, k-1):
A[p+t] = TEMP[t+1]
A = [15, 16, 13, 10, 19, 18]
mergeSort(A, 0, len(A)-1)
print(A)
谢谢
【问题讨论】:
-
@trincot 你能找出问题所在吗?
-
您已经粘贴了代码,但它丢失了函数内部的缩进。请更正
-
@AbhinavMathur 现在可以了吗?
标签: python python-3.x algorithm sorting mergesort