C语⾔-冒泡排序算法(交换排序)从⼤到⼩ 1 #include<stdio.h>
2struct node
3 {
4int key;
5 };
6 typedef struct node DataType;
7
8int Bub_sort(DataType Ar[],int n);
9
10int main(void)
11 {
12int n,i;
13    DataType array[20];
14
15    printf("Input the length of the array <<20>:");
16    scanf("%d",&n);
17for(i=0; i<n; i++)                //输⼊数组
18    {
c语言的冒泡排序算法19        printf("Input %d datas:",i+1);
20        scanf("%d",&array[i]);
21    }
22
23    printf("\n The array are:");
24for(i=0; i<n; i++)
25    {
26        printf("%4d",array[i]);              //输⼊的数组显⽰
27    }
28
29    Bub_sort(array,n);          //调⽤排序算法
30    printf("\n The array after Bub_sort are:");
31for(i=0; i<n; i++)            //输出排序后的算法结果
32    {
33        printf("%4d",array[i]);
34    }
35
36return(0);
37 }
38
39int Bub_sort(DataType Ar[],int n)          //冒泡排序算法
40 {
41int i,flag,j;
42    DataType temp;
43for(i=1; i<=n; i++)                //对⽆序记录序列进⾏n-1趟扫描
44    {
45        flag=0;                                //这⼀趟是否发⽣交换的标志
46for(j=0; j<n-i; j++)            //这趟扫描的范围是从第0趟开始到n-i趟
47        {
48if(Ar[j].key<Ar[j+1].key)              //通过temp进⾏交换
49            {
50                temp.key=Ar[j].key;
51                Ar[j].key=Ar[j+1].key;
52                Ar[j+1].key=temp.key;
53                flag=1;
54            }
55        }
56if(flag==0)                                //若没有发⽣交换,就结束算法
57break;
58    }
59 }
从今天开始把⼤学写的代码,陆续发到博客上吧。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。