快速排序(Quick Sort)是起泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。其算法如下:
void QuickSort(SqList R[ ], int s, int t)
{
int i=s, j=t; //以i 为首,j为尾
SqList tmp;
if(s<t)
{
tmp=R[s[; //确定一个枢轴,小于tmp. key的放在左边,大的放在右边
while(i!=j)
{
while(j>i&&R[i]. key>tmp. key) j--;
if(i<j)
{
R[i]=R[j];
i++;
}
while(i<j&&R[i]. key<tmp. key) i++;
if(i<j)
{
R[j]=R[i];
j--;
}
}
R[i]=tmp;
QuickSort(R, s, i-1);
QuickSort(R, i+1, t);
}
}