C语言快速排序

#include <stdio.h>

void print(int p[],int n){    //打印函数
    for(int i=0;i<n;i++){    
        printf("%d ",p[i]);
    }
    printf("\n");
}

void quickSort(int a[],int left,int right){//快速排序函数
    int i=left;                //声明左端点
    int j=right;            //声明右端点
    int key=a[i];
    if(left>=right)return;    //如果只有一个数则退出
    while(i!=j){
        while(i<j&&a[j]>=key)j--;//对右边的数与key比较大小        
            a[i]=a[j];
        while(i<j&&a[i]<=key)i++;//对左边的数与key比较大小    
            a[j]=a[i];
    }
    a[i]=key;
    quickSort(a,left,i-1);    //左排序
    quickSort(a,i+1,right); //右排序
}
int main(){                //主函数
    int a[]={12,54,5,46,34,76,64,78,2,88};//声明数组
    quickSort(a,0,9);        //调用怕排序方法
    print(a,10);            //打印输出
}

 

posted @ 2018-12-17 00:01  一文搞懂  阅读(249)  评论(0编辑  收藏  举报