快速排序
快速排序
排序
映射以下输入/输出对的算法称为
排序算法 :
- 输入:一个数组,
,包含 可排序元素(整数、字符串、浮点数等):
下面是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)。
算法导论(第2版) (页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。