def merge_sort(alist):
n=len(alist)
if n<=1:
return alist
mid=n//2
left_list =merge_sort(alist[:mid])
right_list =merge_sort(alist[mid:])
left_index,right_index=0,0
result=[]
while(left_index<len(left_list)and right_index<len(right_list)):
if left_list[left_index] < right_list[right_index]:
result.append(left_list[left_index])
left_index+=1
else:
result.append(right_list[right_index])
right_index+=1
result+=(left_list[left_index:])
result+=(right_list[right_index:])
return result
if __name__ == '__main__':
list=[2,4,5,7,3,19,34,1,6]
print(merge_sort(list))
python 数据结构与算法之归并算法
最新推荐文章于 2021-01-10 20:17:27 发布