话题
搜索

快速排序


快速排序是已知最快的基于比较的方法排序 算法(平均而言,对于大量元素),需要O(nlgn)(零)步骤。快速排序是一种递归算法,它首先对数组进行分区{我}_(i=1)^n根据若干规则(Sedgewick 1978):

1.一些关键努位于数组中的最终位置(即,如果它是j个最小的,它在位置上阿吉).

2.左侧的所有元素阿吉小于或等于阿吉.要素a_1,a_2型,...,a(j-1)称为“左子文件。”

3.右侧的所有元素阿吉大于或等于阿吉.元素a_(j+1)。。。,a_n(名词)称为“右子文件。”

Quicksort由Hoare(19611962)发明,经过了广泛的分析和审查(Sedgewick 1975、1977、1978),其速度是已知的两倍第二快的排序算法。在最坏的情况下,然而,快速排序速度较慢n ^2个算法(对于快速排序,“最坏情况”对应到已排序的)。

平均时间T_n(_n)用于对列表进行排序的算法n个按随机顺序排列的项目由重现方程式

 T_n=n+2/nsum_(k=0)^(n-1)T_k
(1)

具有T_0=0(哈维尔2003年,第129页)。这个重复可以重写为

 nT_n=(n+1)T_(n-1)+2n-1,
(2)

有解决方案的

 T_n=2(n+1)H_n-3n,
(3)

哪里H_n(H_n)是一个谐波。对于n=0,1。。。,前几个值是0、1、3、17/3、53/6、62/5、163/10。。。(组织环境信息系统A093418号A096620型).

这具有渐近行为

 T_n~1-3n+2(n+1)γ+5/(6n)+2(n+1)lnn,
(4)

哪里伽马射线尤勒·马切罗尼常数,这意味着T_n~O(nlnn)(哈维尔,2003年,第130页)。


另请参见

堆(Heapsort),排序

与Wolfram一起探索| Alpha

工具书类

Aho,A.V。;霍普克罗夫特,J.E。;和Ullmann,J.D。数据结构和算法。Reading,马萨诸塞州:Addison Wesley,第260-270页,1987Havil,J.“快速分拣”§13.8伽马射线:探索欧拉常数。新泽西州普林斯顿:普林斯顿大学出版社,第128-130页,2003C.A.霍尔。R。“分区:算法63,”“快速排序:算法64”和“查找:算法65”通信。ACM公司 4, 321-322, 1961.C.A.霍尔。R。“快速排序。”计算机J。 5, 10-15, 1962.科努特,D.E。这个计算机编程艺术,第3卷:排序和搜索,第2版。马萨诸塞州雷丁:Addison-Wesley,第113-122页,1998年。出版社,W.H。;弗兰纳里,B.P。;Teukolsky,S.A。;和韦特林。“快速排序。”§8.2英寸数字的FORTRAN:科学计算的艺术,第二版。英国剑桥:剑桥大学出版社,第323-327页,1992年。Sedgewick,R。快速排序。博士论文。斯坦福大学计算机科学报告STAN-CS-75-492。加利福尼亚州斯坦福市:斯坦福大学,1975年5月。Sedgewick,R.“快速排序程序分析”信息学报 7, 327-355, 1977.Sedgewick,R.“实施快速排序程序。"通信ACM 21, 847-857, 1978.斯隆,新泽西州。A。序列A093418号A096620型在“在线整数百科全书”中序列。"

参考Wolfram | Alpha

快速排序

引用如下:

埃里克·魏斯坦(Eric W.Weisstein)。“快速排序”来自数学世界--Wolfram Web资源。https://mathworld.wolfram.com/Quicksort.html

主题分类