def merge_sort(alist):
'''归并排序'''
n=len(alist)
if n<=1:
return alist
mid = n//2
left_li = merge_sort(alist[:mid])
right_li = merge_sort(alist[mid:])
left_pointer,right_pointer = 0,0
result=[]
#new一个新列表,对新列表进行追加
while left_pointer<len(left_li) and right_pointer<len(right_li):
if left_li[left_pointer]<right_li[right_pointer]:
result.append(left_li[left_pointer])
left_pointer+=1
else:
result.append(right_li[right_pointer])
right_pointer+=1
result += left_li[left_pointer:]
result += right_li[right_pointer:]
return result
归并排序(别名:分治排序)
猜你喜欢
转载自blog.csdn.net/qlzy_5418/article/details/85337770
今日推荐
周排行