冒泡法和选择排序法(比较容易写混)


 1 #include<stdio.h>
 2 
 3 
 4 //冒泡排序法
 5 
 6 void bubbling(int a[],int n);
 7 
 8 //选择排序法
 9 void choose(int a[],int n);
10 int main()
11 {
12     int i;
13     int s[6];
14     printf("please enter five numbers:\n");
15     for(i=1;i<6;i++)
16     {
17         scanf("%d",&s[i]);
18     }
19 //    bubbling(s,5);
20     choose(s,5);
21     printf("after number:\n");
22     for(i=1;i<6;i++)
23     {
24         printf("%4d",s[i]);
25     }
26     printf("\n");
27 }
28 
29 void choose(int a[],int n)
30 {
31     int x,y;
32     int iTemp;
33     for(x=1;x<n;x++)
34     {
35         for(y=n;y>=x+1;y--)//前一个数和后一个数的比较。为选择排序法。
36         {
37             if(a[x]>a[y])
38             {
39                 iTemp=a[x];
40                 a[x]=a[y];
41                 a[y]=iTemp;
42             }
43         }
44     }
45 }
46 
47 void bubbling(int a[],int n)
48 {
49     int i,j;
50     int iTemp;
51     for(i=1;i<n;i++)
52     {
53         for(j=i;j<n;j++)
54         {
55             if(a[j]>a[j+1])//每次两两比较,这才是冒泡法
56             {
57                 iTemp=a[j];
58                 a[j]=a[j+1 ];
59                 a[j+1]=iTemp;
60             }
61         }
62     }
63 }

 

 

冒泡法是实现两两比较大小,然后实现最大最小在特定位置。

选择法是数列的一个数和奇然数字比较交换。

 

posted @ 2016-10-26 11:23  小陈同学啦  阅读(373)  评论(0编辑  收藏  举报