def merge_sort(alist):
n = len(alist)
mid = n//2
if n <=1:
return alist#考虑列表一个元素的情况
left_list = alist[:mid]
right_list = alist[mid:]
left_p, right_p = 0, 0#创建两个浮标
result = []#归并在新的列表中
while left_p<len(left_list) and right_p<len(right_list):
if left_list[left_p] < right_list[right_p]:
result.append(left_list[left_p]
left_p +=1
else:
result.append(right_list[right_p]
right_p +=1
result += left_list[left_p:]#添加俩表剩余元素
result += right_list[right_p:]
return result
菜鸟笔记——归并排序
最新推荐文章于 2024-10-13 16:52:53 发布