快速排序 - Python
2018-11-10 21:50
127 查看
快速排序
1. 编程思路:利用基准数对数组进行分割,然后对左右再次进行相似操作直到只剩一个元素未进行排序 1. 定义一个函数结束的条件:如果被传入的disarray中只剩一个元素的话返回disarray并停止调用 2. 在数组中选择一个基准数(baseValue),通常选择为数组中的第一个元素(array[0]) 3. 遍历数组,将比基准数大的放到基准数右侧,将比基准数小的放到基准数右侧 4. 递归调用函数对左右数组进行2、3步2. 伪代码:
def quick_sort(待排序数组/被分割出的数组): 检查数组元素是否到达结束条件,符合条件则直接返回 定义空数组left_array、right_array存放遍历得到的比basevalue大或小的数 遍历数组将比baseValue大或小的数分别存入空数组中 最重要一步:递归调用不断对分割出来的小数组进行排序3. 代码:
array = [3,1,5,4,2] def quick_sort(disarray): if len(disarray) <= 1: return disarray left_array = [] right_array = [] baseValue = disarray.pop() for x in disarray: if x < baseValue: left_array.append(x) else: right_array.append(x) return quick_sort(left_array)+[baseValue]+quick_sort(right_array) print(quick_sort(array)) # [1, 2, 3, 4, 5]
相关文章推荐
- 快速排序之python实现
- 快速排序 python
- python实现快速排序
- python排序算法实现——(四)快速排序
- python 快速排序代码
- JavaScript 、Python Java、Go算法系列之【快速排序】篇
- python 快速排序代码
- Python实现快速排序
- python实现快速排序
- python 快速排序 完整
- JavaScript、Python、java、Go算法系列之【快速排序】篇
- python快速排序
- python实现快速排序
- python 实现冒泡排序与快速排序 遇到的错误与问题
- 快速排序、代码实现(python3版)及其时间空间复杂度分析
- Python - 快速排序
- 学python(9)--快速排序
- Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序
- python快速排序代码实例
- JavaScript 、Python Java、Go算法系列之【快速排序】篇