c语言快速排序(quick_sort)整个排序过程可以递归进行

快速排序  第一种方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void quick_sort(int arry[],int left,int right){
    if(left>=right) return;
    int i=left; int j=right;
    int point=arry[left];  //point 中心数
    while(i<j){
         while(i<j&&arry[j]>=point)j--;    //left 找最小数
            arry[i]=arry[j];
            while(i<j&&arry[i]<=point)i++;  //right  招最大数
            arry[j]=arry[i];
    }
    arry[i]=point;
      quick_sort(arry,left,i-1);    //递归以轴中心left数组
      quick_sort(arry,i+1,right);   //递归以轴中心right数组  

}
void main(){
    int arry[]={1,4,7,9,4,3,1,2,77,2};
    int arryLength=sizeof(arry)/sizeof(int);
    quick_sort(arry,0,arryLength-1);      //快速排序调用
     for(int add=0;add<arryLength;add++){      //输出数组
       printf("%d,",arry[add]);

    }
    system("pause");
}
快速排序 第二种方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int quickSort(int arry[],int left,int right){
    int i=left; int j=right;
    int point=arry[left];  //point 中心数
    while(i<j){
         while(i<j&&arry[j]>=point)j--;    //left 找最小数
            arry[i]=arry[j];
            while(i<j&&arry[i]<=point)i++;  //right  招最大数
            arry[j]=arry[i];
    }
    arry[i]=point;
    return i;
}

void quick_sort(int arry[],int left,int right){
     if(left>=right) return;
       int i=quickSort(arry,left,right);
         quick_sort(arry,left,i-1);    //递归以轴中心left数组
      quick_sort(arry,i+1,right);   //递归以轴中心right数组  

}
void main(){
    int arry[]={1,4,-1,8755,4,3,1,2,77,2};
    int arryLength=sizeof(arry)/sizeof(int);
    quick_sort(arry,0,arryLength-1);      //快速排序调用
     for(int add=0;add<arryLength;add++){      //输出数组
       printf("%d,",arry[add]);

    }
    system("pause");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值