一、快速排序的原理
主要是通过递归来实现快速排序。写子函数,将数据(列表)的最左侧位置的元素作为基数,将小于基数的元素放到左边,大于基数的元素放到右边,此时将基数的下标return回来。此时得到mid,左边一部分数据和右边一部分数据。通过递归实现子函数调用,将mid-1作为左边这部分的右边界,将mid+1作为右这部分的左边界。
二、快速排序的代码
# 快排 重要字眼:基数、下标、边界 def _quick_sort(li, left, right): tmp = li[left] while left < right: while left < right and li[right] > tmp: right -= 1 li[left] = li[right] while left < right and li[left] < tmp: left += 1 li[right] = li[left] li[left] = tmp return left def quick_sort(data, left, right): if left < right: mid = _quick_sort(data, left, right) # mid作为边界 左边的一部分,右边的一部分。 quick_sort(data, left, mid-1) quick_sort(data, mid+1, right) dic = [5, 7, 1, 2, 3, 4, 8, 9, 6] quick_sort(data=dic, left=0, right=len(dic) - 1) print(dic)