[C] 快速排序2 →→→→→进入此内容的聊天室

来自 , 2019-10-10, 写在 C, 查看 135 次.
URL http://www.code666.cn/view/cf059682
  1. #include <stdio.h>  
  2. int assign(int arr[],int down,int up) {
  3.         int q=down;
  4.         int u;
  5.         int t;
  6.         for (u=down;u<up;u++)
  7.            //arr[q]与arr[u]互换,q前移,否则u前移
  8.                 if (arr[u]<=arr[up]) {
  9.                         int t=arr[q];
  10.                         arr[q]=arr[u];
  11.                         arr[u]=t;
  12.                         q++;
  13.                 }
  14.  
  15. }
  16.    
  17. void quick_sort(int arr[],int down,int up) {
  18.         int pos;
  19.         if (down>=up)//不处理
  20.     return;
  21.     pos=assign(arr,down,up);//调用assign方法找到中间值pos
  22.         quick_sort(arr,down,pos-1);//调用sort_sort方法对pos前面的数据排序
  23.         quick_sort(arr,pos+1,up);  //调用sort_sort方法对pos后面的数据排序
  24.  
  25. }
  26. void main()
  27. {      
  28.     int a[]={23,13,49,6,31,19,28};  
  29.     int down = 0;  
  30.     int up =6;
  31.     int i;
  32.     quick_sort(a,down,up);  
  33.     for( i=0;i<=up;i++)  
  34.         printf("%4d",a[i]);  
  35.     return 0;  
  36. }  

回复 "快速排序2"

这儿你可以回复上面这条便签

captcha