算法与数据结构——归并排序
归并排序采用分治法
就是将一组混乱的数据分开,将分开的部分排序,将排好序的再组合起来,其实在合并过程中还是有比较的。
垃圾,真显得蛋疼
代码不是完全正确,存在bug,在pycharm里边改好了
def merge_sort(nums):
if len(nums)<=1:
return nums
count = len(nums)//2
left = nums[:count]
right = nums[count:]
return
def merge(left,right):
l,r = 0,0
result = []
while l < len(left) and r < len(right):
if left[l] < right[r]:
result.append(left[l])
l += 1
else:
result.append(right[r])
r += 1
# 为什么非得加一个list呢,因为有时候left[l:]只有一个数据的时候,是一个数字
result += list(left[l:])
result += list(right[r:])
if __name__ == "__main__":
nums = [1, 23, 13, 34, 15, 76, 27, 38, 9]
merge_sort(nums)
print(nums)

