代码如下:
#6.归并排序
#思想:将N个长度为1的键值,成对合并成N/2个长度为2的键值组
#将N/2 2 N/4 4
#...
#直到合并为1组长度为N的键值组为止
def Merge_sort(num_list):
if len(num_list) <= 1:
return num_list
middle = len(num_list) // 2
left = Merge_sort(num_list[:middle])
right = Merge_sort(num_list[middle:])
i = j = 0
result_list = []
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result_list.append(left[i])
i += 1
else:
result_list.append(right[j])
j += 1
result_list += left[i:]
result_list += right[j:]
return result_list
print(Merge_sort(num_list=[33,23,77,44,11,67,34,88]))
执行结果: