【发布时间】:2018-11-05 14:07:30
【问题描述】:
以下是合并排序的代码,其中枢轴集作为第一个元素。这段代码正在为我生成一个与输入相同的输出数组。
Python3 代码:
def mergesort(array):
length=len(array)
if(length<=1):
return (array)
else:
mid=length//2
left=[]
right=[]
# print(mid)
left=mergesort(array[0:mid])
right=mergesort(array[mid:])
# print(left, right)
arr=merge(left,right)
return (array)
def merge(left,right):
# print(left, right)
i=j=0
# l=len(left+right)
l1=len(left)
l2=len(right)
l=l1+l2
arr=list()
for k in range(l):
if i == l1:
arr.append(right[j])
j+=1
elif j == l2:
arr.append(left[i])
i+=1
elif(left[i] > right[j]):
arr.append(right[j])
j=j+1
elif (left[i] < right[j]):
arr.append(left[i])
i=i+1
# print(array)
return (arr)
array=list(map(int,input().split()))
# print(array)
print(mergesort(array))
这是我的程序的截图:
【问题讨论】:
-
是
merge_sort:arr=merge(left,right)中的拼写错误然后返回array而不是arr?
标签: algorithm sorting data-structures mergesort