//快速排序
#include<stdio.h>
void QSort(int *L,int low,int high);
int Partition(int *L,int low,int high);
int main()
{
int a[10]={20,15,23,21,55,33,45,47,53,42};
QSort(a,0,9);
int i;
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
int Partition(int *L,int low,int high)
{
int pivotkey=0;
pivotkey=L[low];
while(low<high){
while(low<high&&L[high]>=pivotkey){
high--;
}
L[low]=L[high];
while(low<high&&L[low]<=pivotkey){
low++;
}
L[high]=L[low];
}
L[low]=pivotkey;
return low;
}
void QSort(int *L,int low,int high)
{
int pivotloc=0;
if(low<high){//递归;
pivotloc=Partition(L,low,high);
QSort(L,low,pivotloc-1);
QSort(L,pivotloc+1,high);
}
}
快速排序实现
最新推荐文章于 2024-10-10 23:12:18 发布