一趟快速排序的过程(从前向后)
首先选取一个元素(通常选第1个元素)作为基准元素, 38,49,13,76,97,50,27,65中38为基准元素,将所有排序码比基准元素排序码小的元素都安置在基准元素的左侧,而所有排序码比基准元素排序码大的元素都安置在基准元素的右侧。最后以基准元素所在的位置作分界线,将序列分割成两个子序列,称为一次划分。不停的划分待排序列,每次划分都将分割后的小序列基准元素放到分割大小的中间位置,当基准元素和左边界下标相等时,说明排好了,以此作为判断递归的依据,利用递归将待排序列排好,具体实现方法: 设两个指针low 和 high ,它们的初值 分别指向待排序元素序列的首元素和尾元素,设基准元素的排序码为pivot,其位置为pivotpos。先从low+1所指位置向后搜索,找到第1个排序码小于pivot的元素,pivotpos++; 令该元素与pivotpos位置上的元素交换;重 复此操作直到最后一个元素,最后交换基准元素和pivotpos位置上的元素;一次划分完成。
Partition函数实现每次排序时将基准元素放到大小意义上的中间位置
QuickSort函数实现序列的分割递归调用。
为了方便,直接用的自己设的默认数组。