1.快速排序
快排的基本思想是分治策略:在待排序表L[1…n]中任意取一个元素pivot作为基准。通过一趟比较大小将待排序表L[1…n]划分为独立的两部分L[1…k-1]和L[k+1…n],使得L[1…k-1]中所有元素小于pivot,L[k+1…n]中所有元素大于或等于pivot。,pivot放在了最终位置L[k]上,这样就完成了第一趟快排。
然后,再分别递归地对两个字表重复上述过程,直至每部分只有一个元素或空为止。这样,排序完成。
2.代码实现
快排函数为QuickSort(),划分函数为Partition(),返回的是上述中的k。
#include<iostream>
using namespace std;
//Partition()划分操作,将表A[low,high]划分为满足上述条件的两个子表
int Partition(int A[],int low,int high)
{
//严蔚敏版数据结构教材中的划分算法
int pivot = A[low];//将当前表中第一个元素的值作为基准,对表进行划分
while