快速排序

#include<stdio.h>
#include<stdlib.h>
int a[1000];

void qsort(int x,int y){
    int u,v,mid,tmp;
    mid=a[(x+y)/2];
    u=x;v=y;
    while(u<=v){
        while(a[u]<mid && u<=v)u++;
        while(a[v]>mid && u<=v)v--;
        if(u<=v){
            tmp=a[u];a[u]=a[v];a[v]=tmp;
            u++;v--;         
        }       
    }
    if(x<v)qsort(x,v);
    if(u<y)qsort(u,y);
}

int main(){
    int i,j,k,m,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    qsort(1,n);
    for(i=1;i<=n;i++)printf("%d ",a[i]);  
    return 0;    
}

你可能感兴趣的:(排序,快速排序,C语言,基础算法)