Linux下实现冒泡排序

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

排序过程:

原序列            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

#include

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

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

       printf("\n");

       for(j=0;j

              for(i=0;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

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

       printf("\n");

       free(a);

       system("pause");

       return 0;} 

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


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



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


你可能感兴趣的:(编程语言,冒泡排序,工作,linux)