def merge_sort(list):
left_p = 0
right_p = 0
result = []
len_list = len(list)
if len_list <= 1:
return list
mid = (len_list//2)
left_list = merge_sort(list[:mid])
right_list = merge_sort(list[mid:])
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
if __name__ == '__main__':
list = [2, 3, 1, 6, 9, 4, 5]
re = merge_sort(list)
print(re)