import math
def sort(arr):
num_count = len(arr)
n = 0
while True:
temp_arr = []
group_size = 2 ** n
for i in range(math.ceil(num_count/group_size/2)):
left = arr[group_size*(2*i):group_size*(2*i+1)]
right = arr[group_size*(2*i+1):group_size*(2*i+2)]
while left and right:
if left[0] > right[0]:
temp_arr.append(left.pop(0))
else:
temp_arr.append(right.pop(0))
temp_arr.extend(left)
temp_arr.extend(right)
arr = temp_arr
if group_size >= num_count:
break
n += 1
return arr
la = [5, 2, 7, 8, 6, 1, 4, 9, 10, 1, 2, 3, 4]
print(sort(la))

售后响应及时
7×24小时客服热线
数据备份
更安全、更高效、更稳定
价格公道精准
项目经理精准报价不弄虚作假
合作无风险
重合同讲信誉,无效全额退款