本题要求实现一个快速排序函数。
给定 N ( N<= 1000 ) 个 int 范围内的整数,要求用快速排序对数据进行降序排列。
//快速排序(递归和分治)
#include<stdio.h>
void Quick_sort(int a[],int left,int right)
{
int i,j;
i=left;
j=right;
int key=a[left];
if(left>=right)
return;
while(i<j)
{
while(i<j&&a[j]<=key)
{
j--;
}
a[i]=a[j];
while(i<j&&a[i]>=key)
{
i++;
}
a[j]=a[i];
}
a[i]=key;
Quick_sort(a,left,i-1);
Quick_sort(a,i+1,right);
}
int main()
{
int n,i;
int a[1001];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
Quick_sort(a,0,n-1);
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
printf("%d",a[n-1]);
printf("\n");
}