码迷,mamicode.com
首页 > 编程语言 > 详细

4.3 快速排序法

时间:2016-07-19 09:06:56      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

4-3 QuickSort.c

 1 #include <stdio.h>
 2 #include "4-1 CreateData.c"
 3 #define ARRAYLEN 10
 4 int Division(int a[],int left, int right) //分割 
 5 {
 6     int base=a[left];    //基准元素
 7     while(left<right)
 8     {
 9         while(left<right && a[right]>base)
10             --right;     //从右向左找第一个比基准小的元素
11         a[left]=a[right];
12         while(left<right && a[left]<base )
13             ++left;      //从左向右找第一个比基准大的元素
14         a[right]=a[left];
15     }
16     a[left]=base;
17     return left;
18 }
19 void QuickSort(int a[],int left,int right)
20 {
21     int i,j;
22     if(left<right)
23     {
24         i=Division(a,left,right);   //分割
25         QuickSort(a,left,i-1);     //将两部分分别排序
26         QuickSort(a,i+1,right);
27     }
28 }
29 int main()
30 {
31     int i,a[ARRAYLEN];
32     for(i=0;i<ARRAYLEN;i++)
33         a[i]=0;
34     if(!CreateData(a,ARRAYLEN,1,100))
35     {
36         printf("生成随机数不成功!\n");
37         getch();
38         return 1;
39     }
40     printf("原数据:"); 
41     for(i=0;i<ARRAYLEN;i++)
42         printf("%d ",a[i]);
43     printf("\n");
44     QuickSort(a,0,ARRAYLEN-1);
45     printf("排序后:"); 
46     for(i=0;i<ARRAYLEN;i++)
47         printf("%d ",a[i]);
48     printf("\n");
49     getch();
50     return 0;   
51 }

 

4.3 快速排序法

标签:

原文地址:http://www.cnblogs.com/wozixiaoyao/p/5683149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!