Python实现的快速排序算法详解
2017-08-01 11:40
796 查看
快速排序基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
如序列[6,8,1,4,3,9],选择6作为基准数。从右向左扫描,寻找比基准数小的数字为3,交换6和3的位置,[3,8,1,4,6,9],接着从左向右扫描,寻找比基准数大的数字为8,交换6和8的位置,[3,6,1,4,8,9]。重复上述过程,直到基准数左边的数字都比其小,右边的数字都比其大。然后分别对基准数左边和右边的序列递归进行上述方法。
实现代码如下:
def parttion(v, left, right): key = v[left] low = left high = right while low < high: while (low < high) and (v[high] >= key): high -= 1 v[low] = v[high] while (low < high) and (v[low] <= key): low += 1 v[high] = v[low] v[low] = key return low def quicksort(v, left, right): if left < right: p = parttion(v, left, right) quicksort(v, left, p-1) quicksort(v, p+1, right) return v s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6] print("before sort:",s) s1 = quicksort(s, left = 0, right = len(s) - 1) print("after sort:",s1)
运行结果:
before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6] after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- python实现bitmap数据结构详解
- 快速排序算法 Python实现
- 逻辑回归详解及Python实现
- 快速排序算法-Java、Python实现
- Python中用Descriptor实现类级属性(Property)详解
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
- Python实现字符串格式化输出的方法详解
- 利用Python中unittest实现简单的单元测试实例详解
- 机器学习经典算法详解及Python实现--K近邻(KNN)算法
- Python实现发送与接收邮件的方法详解
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(1)
- 快速排序算法及python代码实现
- Python实现简单的文本相似度分析操作详解
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)
- 机器学习经典算法详解及Python实现–K近邻(KNN)算法
- LeetCode 80 Remove Duplicates from Sorted Array II (Python详解及实现)
- 详解如何用OpenCV + Python 实现人脸识别
- 快速排序算法-python实现
- LeetCode 84 Largest Rectangle in Histogram (Python详解及实现)
- 八大排序之快速排序算法-python实现