#include<stdio.h>
int QuickSort(int*,int,int);
int partition(int*,int,int);
int main(){
int i;
int a[]={10,8,4,3,9,6,2,7,1,5};
int length=10;
QuickSort(a,0,length-1);
for(i=0;i<length;i++){
printf("%d ",*(a+i));
}
return 0;
}
int QuickSort(int *array,int low,int high){
if(low < high){
int q=partition(array,low,high);
QuickSort(array,low,q-1);
QuickSort(array,q+1,high);
}
return 1;
}
int partition(int *array,int p,int r){
int pivot=*(array+r);
int i=p-1;
int j;
for(j=p;j<=r-1;j++){
if(*(array+j)<=pivot){
i=i+1;
int temp=*(array+j);
*(array+j)=*(array+i);
*(array+i)=temp;
}
}
int temp=*(array+r);
*(array+r)=*(array+i+1);
*(array+i+1)=temp;
return i+1;
}
快速排序
最新推荐文章于 2021-11-19 16:57:43 发布