#include<stdio.h>
#define MAXSIZE 10000
void QuickSort(int a[],int lo,int hi);
int Partition(int a[],int lo,int hi);
void swap(int a[],int b,int c);
void Output(int a[],int n);
int main()
{
int n;//输入元素的个数
int a[MAXSIZE];
int i;
scanf("%d",&n);
for(i=0;i<n;i++){//输入n个元素
scanf("%d",&a[i]);
}
QuickSort(a,0,n-1);
Output(a,n);
return 0;
}
void QuickSort(int a[],int lo,int hi)
{
int i;
if(lo>=hi)return;
else{
i=Partition(a,lo,hi);
QuickSort(a,lo,i-1);
QuickSort(a,i+1,hi);
}
}
int Partition(int a[],int lo,int hi)
{
int i=lo,j=hi;
int tmp=a[lo];
while(i!=j){
while(i<j&&a[j]>=tmp)j--;
while(i<j&&a[i]<=tmp)i++;
swap(a,i,j);
}
swap(a,lo,i);
return i;
}
void swap(int a[],int b,int c)
{
int temp;
temp=a[b];
a[b]=a[c];
a[c]=temp;
}
void Output(int a[],int n)
{
int i;
for(i=0;i<n;i++){
printf("%d\n",a[i]);
}
}
快速排序noj
最新推荐文章于 2021-05-17 04:46:27 发布