Linux下实现冒泡排序

来源:互联网 发布:网络推广电话销售 编辑:程序博客网 时间:2024/05/22 01:42

排序思想:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。每次排序后,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。

排序过程:

原序列           9 8 7 6 5 43 2 1

第一次排序后    8 7 6 5 4 3 2 1 9

第二次排序后    7 6 5 4 3 2 1 8 9

第三次排序后    6 5 4 3 2 1 7 8 9

.........                 ..............................

C语言实现,源码如下:

#include<stdio.h>

#include<stdlib.h>

int main()

{    int NUM;

       scanf("%d",&NUM);

       int *a=     (int *)malloc(NUM*sizeof(int));

       int i,j,k;

       printf("enter%d numbers:",NUM);

       for(i=0;i<NUM;i++)

              scanf("%d",&a[i]);

       printf("\n");

       for(j=0;j<NUM-1;j++)

              for(i=0;i<NUM-1-j;i++)

                       if(a[i]>a[i+1])

                       { k=a[i];

                        a[i]=a[i+1];

                        a[i+1]=k;

                       }

    printf("theresult is:\n");

       for(i=0;i<NUM;i++)

              printf("%6d",a[i]);

       printf("\n");

       free(a);

       system("pause");

       return 0;} 

Vim编辑器下代码截图如下:


GCC编译、运行效果如下图:



(每天一点小收获,感觉距离Linus Torvalds大神又近了一步!)


原创粉丝点击