标签:style blog http io ar sp strong on 2014
快速排序利用了分治策略。分治策略可以分为3个步骤:
对一个典型的子数组A[p..r]进行快速排序的分治过程如下:
快速排序的伪代码如下:
,为了排序数组A的全部元素,初始调用QUICKSORT(A, 1, A.length)。
其中最关键的部分就是数组的划分PARTITION,它实现了对子数组A[p..r]的原址重排。伪代码如下:
这里的PARTITION程序选择x=A[r]作为主元,并围绕着它来划分数组。
随着程序的增加,数组被划分成4个区域,如下图所示:
其中:
指针 i 一直指向值小数组的最后一个元素,j指向值大数组末尾的下一个元素。所以当A[j]>x时,数值小的部分不用改变。
当当A[j]<=x时,需要将A[j]放到数值小的部分的最后,所以先将i
标签:style blog http io ar sp strong on 2014
原文地址:http://www.cnblogs.com/hust-ghtao/p/4126781.html