快速排序又称为分区交换排序,该排序算法使用分割法对待排序的文件中的记录进行排序。快速排序的处理过程如下:从待排序的记录中选一个记录,以这个记录的排序码作为中心值,将其他所有记录划分为两个部分,第一个部分包含所有小于等于中心值的记录,第二部分包含所有大于中心值的记录,。然后采用递归的办法对两个部分继续进行排序。实现代码如下:
void QuickSort(int arr[],int low,int high)
{
int i,j;
int tmp;
if(low>=high)
return;
i=low;
j=high;
tmp=arr[i];
while(i<j)
{
//首先从后向前找出一个比tmp中心点小的节点
while(i<j&&tmp<arr[j])j--;
if(i<j)
arr[i++]=arr[j];
while(i<j&&tmp>arr[i])i++;
if(i<j)
arr[j--]=arr[i];
}
arr[i]=tmp;
QuickSort(arr,low,--j);
QuickSort(arr,++i,high);
}