- //快速排序
- #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;
- }
复制代码 |