代码:
def merge_sort(array):
if len(array) <= 1:
return
mid = len(array) // 2
L = array[:mid]
R = array[mid:]
merge_sort(L)
merge_sort(R)
i = j = k = 0
while i < len(L) and j < len(R):
if L[i] <= R[j]:
array[k] = L[i]
i += 1
else:
array[k] = R[j]
j += 1
k += 1
# 如果左边/右边还有剩余的,则把剩余的添加到array中
while i < len(L):
array[k] = L[i]
k += 1
i += 1
while j < len(R):
array[k] = R[j]
k += 1
j += 1
if __name__ == "__main__":
n = int(input())
list1 = list(map(int, input().split()))
merge_sort(list1)
for i in list1:
print(i, end=" ")