快速排序
快速排序
排序
映射以下输入/输出对的算法称为
排序算法 :
- 输入:一个数组,
,包含 可排序元素(整数、字符串、浮点数等):
这是an的意思<一个target="_blank" rel="nofollow" href="//www.parkandroid.com/wiki/arrays/">数组
是 排序 :数组
换句话说,排序数组是按特定顺序排列的数组。例如,
快速排序
快速排序使用分治法对数组进行排序。分治法是一种将算法分解成子问题,解决子问题,然后将结果组合起来解决原问题的技术。把这种方法看作分、治、合是很有帮助的。 下面是快速排序使用的分治和合并步骤: 分: 征服:
选择一个主
选择一个好的轴是快速实现快速排序的关键;然而,很难确定一个好的轴心应该是什么。分区步骤所花费的时间与被分区的元素数量成正比,因此减少每个分区中的元素数量将提供更快的运行时间。最佳情况下,枢轴将把数组分成两个相等的部分,这将使问题的大小减半。然而,这意味着主元是元素的中值,为了找到中值,我们需要一个已经排序的数组。因为快速排序的目标是 以下是一些选择支点的方法:
快速排序的实现
下面是在Python中实现快速排序的一种方法。有许多实现快速排序的方法,但所有实现背后都有相同的思想。快速排序可以对任何有序列表(整数、字符串、浮点数等)进行排序。
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
def
快速排序的复杂性
部门:
参考文献
- Cormen, T., Leiserson, C., Rivest, R., & Stein, C.(2001)。
算法导论(第二版) (页171)。麻省理工学院出版社。 - 交互式Python, R。
快速排序的 .2016年3月22日,从<一个href="https://interactivepython.org/runestone/static/pythonds/SortSearch/TheQuickSort.html">http://interactivepython.org/runestone/static/pythonds/SortSearch/TheQuickSort.html - 交互式Python, R。