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

来自 , 2019-08-09, 写在 C++, 查看 100 次.
URL http://www.code666.cn/view/c8758b51
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3.  
  4. void quick_sort(int s[], int l, int r)
  5. {
  6.     int i, j, x;
  7.     if (l < r)
  8.     {
  9.         i = l;
  10.         j = r;
  11.         x = s[i];
  12.         while (i < j)
  13.         {
  14.             while(i < j && s[j] > x)
  15.                                 j--; /* 从右向左找第一个小于x的数 */
  16.             if(i < j)
  17.                                 s[i++] = s[j];
  18.        
  19.  
  20.             while(i < j && s[i] < x)
  21.                                 i++; /* 从左向右找第一个大于x的数 */
  22.             if(i < j)
  23.                                 s[j--] = s[i];
  24.  
  25.         }
  26.         s[i] = x;
  27.         quick_sort(s, l, i-1); /* 递归调用 */
  28.         quick_sort(s, i+1, r);
  29.     }
  30. }
  31.  
  32.  
  33. int _tmain(int argc, _TCHAR* argv[])
  34. {
  35.        
  36.         int a[]={49,38,65,97,76,13,27};
  37.         int l = 0;
  38.         int r = 6;
  39.         quick_sort(a,l,r);
  40.  
  41.         for(int i=0;i<=r;i++)
  42.                 printf("%4d",a[i]);
  43.         return 0;
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  

回复 "快速排序"

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

captcha