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

4.2 冒泡排序法

时间:2016-07-19 09:18:44      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

4-2 BubbleSort.c

 1 #include <stdio.h>
 2 #include "4-1 CreateData.c"
 3 #define ARRAYLEN 6
 4 void BubbleSort(int a[],int n)
 5 {
 6     int i,j,t;
 7     for(i=0;i<n-1;i++)
 8     {
 9         for(j=n-1;j>i;j--)
10         {
11             if(a[j-1]>a[j])
12             {
13                 t=a[j-1];
14                 a[j-1]=a[j];
15                 a[j]=t;
16             }
17         }
18         printf("第%2d遍:",i+1); 
19         for(j=0;j<n;j++)
20             printf("%d ",a[j]);
21         printf("\n");
22     }
23 }
24 void BubbleSort1(int a[],int n)
25 {
26     int i,j,t,flag=0;        //flag用来标记是否发生交换
27     for(i=0;i<n-1;i++)
28     {
29         for(j=n-1;j>i;j--)
30         {
31             if(a[j-1]>a[j])//交换数据 
32             {
33                 t=a[j-1];
34                 a[j-1]=a[j];
35                 a[j]=t;
36                 flag=1;
37             }
38         }
39         printf("第%2d遍:",i+1); 
40         for(j=0;j<n;j++)
41             printf("%d ",a[j]);
42         printf("\n");
43         if(flag==0)    //没发生交换,直接跳出循环
44             break;
45         else
46             flag=0;
47     }
48 }
49 int main()
50 {
51     int i,a[ARRAYLEN];
52     for(i=0;i<ARRAYLEN;i++)
53         a[i]=0;
54     if(!CreateData(a,ARRAYLEN,1,100))
55     {
56         printf("生成随机数不成功!\n");
57         getch();
58         return 1;
59     }
60     printf("原数据:"); 
61     for(i=0;i<ARRAYLEN;i++)
62         printf("%d ",a[i]);
63     printf("\n");
64     BubbleSort1(a,ARRAYLEN);
65     printf("排序后:"); 
66     for(i=0;i<ARRAYLEN;i++)
67         printf("%d ",a[i]);
68     printf("\n");
69     getch();
70     return 0;   
71 }

 

4.2 冒泡排序法

标签:

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

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