快速排序,
输入格式:
第一行为一个整数N<100 第二行包括N个用空格分开的未排序的数且保证每个数≤10000。
输出格式:
将给定的N个数从小到大输出,数之间空格隔开。
代码:
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
return;
}
void quicksort(int array[],int maxlen,int begin,int end){
int i,j;
if(begin<end)
{
i=begin + 1;
j=end;
while(i<j){
if(array[i]>array[begin]){
swap(&array[i],&array[j]);
j--;
}
else{
i++;
}
}
if((array[i]>=array[begin])){
i--;
}
swap(&array[begin],&array[i]);
quicksort(array,maxlen,begin,i);
quicksort(array,maxlen,j,end);
}
}
int main(){
int a[100],n,left,right;
scanf("%d\n",&n);
for(int k=0;k<n;k++){
scanf("%d",&a[k]);
}
quicksort(a,n,0,n-1);
for(int k=0;k<n;k++){
printf("%d ",a[k]);
}
return 0;
}