黑马程序员技术交流社区
标题:
新手C语言排序算法之快速排序实现--->欢迎交流
[打印本页]
作者:
YuePr
时间:
2015-12-2 22:54
标题:
新手C语言排序算法之快速排序实现--->欢迎交流
//快速排序
#include <stdio.h>
#define ARRAY_LEN (7)
typedef enum EBool
{
EBool_false = 0,
EBool_true,
}EBool;
void QuickSort(int num[], int arrayLen)
{
int i = 0;
int j = arrayLen - EBool_true;
int midNum = num[EBool_false];
if(arrayLen > 1)
{
while(i < j)
{
for(j = arrayLen - EBool_true; j > i; -- j)//从后往前
{
if(num[j] < midNum)
{
num[i] = num[j];
break;
}
}
for(i = EBool_false; i < j; ++ i)//从前往后
{
if(num[i] > midNum)
{
num[j] = num[i];
break;
}
}
}
num[i] = midNum;
QuickSort(num, i);
QuickSort(num + i + 1, arrayLen - 1 - i);
}
}
int main(int argc, char** argv)
{
int i = EBool_false;
int num[ARRAY_LEN] = {3,15,2,1,18,4,20};
QuickSort(num, ARRAY_LEN);
for(i = EBool_false; i < ARRAY_LEN; ++ i)
{
printf("%d\n", num[i]);
}
return EBool_false;
}
复制代码
作者:
YuePr
时间:
2015-12-2 22:55
今天晚上考试还弄错了一个,预处理指令->宏定义的题目...真是不应该。
作者:
米易雅克
时间:
2015-12-3 17:59
你很牛逼啊!必须顶顶。。。!!!!!!
作者:
iamcominghm
时间:
2015-12-14 18:01
这个为什么要用递归啊...
作者:
YuePr
时间:
2015-12-14 18:10
谢谢 大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2