A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //快速排序
  2. #include <stdio.h>

  3. #define ARRAY_LEN (7)

  4. typedef enum EBool
  5. {
  6.     EBool_false = 0,
  7.     EBool_true,
  8. }EBool;

  9. void QuickSort(int num[], int arrayLen)
  10. {
  11.     int i = 0;
  12.     int j = arrayLen - EBool_true;
  13.     int midNum = num[EBool_false];

  14.     if(arrayLen > 1)
  15.     {
  16.         while(i < j)
  17.         {
  18.             for(j = arrayLen - EBool_true; j > i; -- j)//从后往前
  19.             {
  20.                 if(num[j] < midNum)
  21.                 {
  22.                     num[i] = num[j];
  23.                     break;
  24.                 }
  25.             }

  26.             for(i = EBool_false; i < j; ++ i)//从前往后
  27.             {
  28.                 if(num[i] > midNum)
  29.                 {
  30.                     num[j] = num[i];
  31.                     break;
  32.                 }
  33.             }
  34.         }
  35.         num[i] = midNum;
  36.         QuickSort(num, i);
  37.         QuickSort(num + i + 1, arrayLen - 1 - i);
  38.     }
  39.    
  40. }

  41. int main(int argc, char** argv)
  42. {
  43.     int i = EBool_false;
  44.     int num[ARRAY_LEN] = {3,15,2,1,18,4,20};

  45.     QuickSort(num, ARRAY_LEN);

  46.     for(i = EBool_false; i < ARRAY_LEN; ++ i)
  47.     {
  48.         printf("%d\n", num[i]);
  49.     }
  50.     return EBool_false;
  51. }
复制代码

评分

参与人数 2黑马币 +17 收起 理由
iamcominghm + 12 很给力!
米易雅克 + 5 神马都是浮云

查看全部评分

4 个回复

倒序浏览
今天晚上考试还弄错了一个,预处理指令->宏定义的题目...真是不应该。

评分

参与人数 1黑马币 +4 收起 理由
曼卿phyand + 4 很给力!

查看全部评分

回复 使用道具 举报
你很牛逼啊!必须顶顶。。。!!!!!!
回复 使用道具 举报
这个为什么要用递归啊...
回复 使用道具 举报
谢谢 大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马