天天看点

三种排序对比:选择法,插入法,冒泡法

三种排序对比:选择法,插入法,冒泡法

三种排序都是最基本的,时间复杂度最大为O(n*n)的排序方法。这里给出的是采用数组形式的简单序列排序(从小到大)。

#include

int main()

{

    int a[10]={4,6,8,2,0,1,5,7,3,9};

    int i,j,k;

    for(j=0;j

      for(i=j+1;i

          if(a[i]

                        k=a[i];

                        a[i]=a[j];;

                        a[j]=k;

                        }           

    for(j=0;j<=9;j++)printf("%d\n",a[j]);

    system("pause");

}

#include

int main()

{

    int a[10]={4,6,8,2,0,1,5,7,3,9};

    int i,j,k;

    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;

                          }

    for(j=0;j<=9;j++)printf("%d\n",a[j]);

    system("pause");

}

#include

int main()

{

    int a[10]={9,2,2,5,6,7,4,5,1,0},i,j,k,m;

    for(i=1;i<=9;i++)

        {

        m=a[i];                    

        for(j=i-1;j>=0 && m

                       a[j+1]=a[j];

        a[j+1]=m;                

        }

    for(k=0;k<=9;k++)

    printf("%d\n",a[k]);

    system("pause");

}

大部分数据结构书上插入排序的写法,感觉用while反而不太清楚:

#include

int main()

{

    int i,j,k,l;

    int a[10]={4,6,8,2,0,1,5,7,3,9};

    for(i=1;i<=9;i++)

      {

        k=a[i];

        j=i-1;

        while(j>=0 && a[j]>k)

                   {

                    a[j+1]=a[j];

                    j--;

                    }

        a[j+1]=k;   

       }

      for(l=0;l<=9;l++)

             printf("%d\n",a[l]);

      system("pause");

}

引用地址:http://blog.programfan.com/trackback.asp?id=30329

阅读全文

类别:

Arithmetic  查看评论

版权声明:本文为CSDN博主「weixin_33716557」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_33716557/article/details/91928863