算法与数据结构——归并排序
归并排序采用分治法
就是将一组混乱的数据分开,将分开的部分排序,将排好序的再组合起来,其实在合并过程中还是有比较的。
垃圾,真显得蛋疼
代码不是完全正确,存在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)