python实现快排+冒泡排序
1、快排
""" 快排:从一堆杂乱的数据中挑选一个基准值,将这些数字和基准值一一比较,大的放基准值的右边,小的放左边 实现思路:定义一个函数,挑选列表的首个数字作为基准值,其他数字比基准值小的数字生成列表,同理,其他数字和基准值大的数字生成另一个列表,再递归快排这两个列表 """ def quick_sort(nums): if len(nums) < 2: return nums else: base = nums[0] left = [ i for i in nums[1:] if i <base ] right = [i for i in nums[1:] if i > base] return quick_sort[left] + [base] + quick_sort[right] nums = [5, 88, 35, 1, -8, 52, 552, 103254, 956, 235, 154, 22] print(quick_sort(nums)) 输出:[-8, 1, 5, 22, 35, 52, 88, 154, 235, 552, 956, 103254]
2、冒泡
""" 冒泡:从左向右,两两比较,如果左边大于右边,则交换位置 """ def bubble_sort(arr): length = len(arr) for i in range(length): for j in range(length - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr