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小时内删除。
发表评论