算法C语言快速排序
int partition(int a[],int left,int right){
int first=left;
int last=right;
int key=a[first];//设置关键数字
if(left>=right)
return 0;
while(first<last){
//从右往左找到第一个比key小的数 ,将first与last调换位置
while(first<last&&a[last]>=key){
last--;
}
a[first]=a[last];
//从左往右找到第一个比key大的数,将first与last调换位置
while(first<last&&a[first]<key){
first++;
}
a[last]=a[first];
}
a[first]=key;
//递归实现分段的快速排序
return first;
}
void QuickSort(int a[],int p,int r){
if(p<r){
int q=partition(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}