[ 资料结构 ] 快速排序法(Quick sort)in Python
快速排序法(Quick sort)运用到 Divide and conquer 的概念,
把数列一分为二,最终完成排序。
步骤为:
1. 取第一个元素(最左的数)为键值 key
2. 由左向右(前向后)找一个数(第一个满足的),
其值大于等于 key 值,该数之索引为 left_pivot
3. 由右向左(后向前)找一个数(第一个满足的),
其值小于等于 key 值,该数之索引为 right_pivot
4. 如果 left_pivot < right_pivot 则交换值,
否则把 key 值与 right_pivot 值交换,以 right_pivot 为基准,分为左右两个数列
5. 重复上述步骤排序左右两个数列,直到完成排序
如下图
以下为Python的快速排序法(由小到大)程式码
(使用了额外空间)
In-place的版本
参考wikipedia,https://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F
快速排序可以参考wikipedia上的python超简短的实作程式码唷 =)