#include <stdio.h>
#include <stdlib.h>
typedef struct{
int r[100];
int length;
}sqlist;
int partition(sqlist*l,int low,int high){
int pivotkey;
pivotkey=l->r[low];
l->r[0]=pivotkey;
while(low<high){
while(low<high && l->r[high]>=pivotkey)
high--;
l->r[low]=l->r[high];
while(low<high && l->r[low]<=pivotkey)
low++;
l->r[high]=l->r[low];
}
l->r[low]=l->r[0];
return low;
}
void quicksort(sqlist*l,int low,int high){
int pivot;
while(low<high){
pivot=partition(l,low,high);
quicksort(l,low,pivot-1);
low=pivot+1;
}
}
int main(){
int length,i;
scanf("%d",&length);
sqlist*l=(sqlist*)malloc(sizeof(sqlist));
l->length=length;
for(i=1;i<=length;i++){
scanf("%d",&l->r[i]);
}
quicksort(l,1,length);
for(i=1;i<=length;i++){
printf("%d ",l->r[i]);
}
return 0;
}
quicksort
最新推荐文章于 2020-11-28 12:33:38 发布