zoukankan      html  css  js  c++  java
  • 排序算法复习—冒泡排序

    冒泡排序基本思想:两两比较相邻数据,如果反序则交换数据,直到没有反序为止。

    冒泡:较小的数(较大的数)如同气泡般慢慢浮到上面,因此命名冒泡排序,气泡排序。 还是代码看着直观,如下:

        int a[]={2,1,3,4,5};
        int n = sizeof(a)/sizeof(int);    
        int i,j,temp;
        bool exchange=true;
    
        for(i=0;i<n && exchange;i++)
        {
            exchange=false;
            for(j=n-2;j>=i;j--)//a[0]顶时,较小的气泡上浮。 
          //for(j=0;j<n-1-i;j++) a[0]底时,较大的气泡上浮。
            {
                if(a[j]>a[j+1])
                {
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                    exchange=true;
                }
            }
        }

     补充说明:不一定要用双循环来完成算法,下面的代码更容易理解冒泡算法:

     1     int a[]={2,1,3,4,5};
     2     int length= sizeof(a)/sizeof(int);    
     3     int n=length;
     4     int i,j,temp;
     5         bool exchange=true;
     6 
     7     while(exchange)
     8     {
     9         exchange=false;
    10         for(j=0;j<n-1;j++) 
    11         {
    12             if(a[j]>a[j+1])
    13             {                
    14                 swap(a[j],a[j+1]);
    15                 exchange=true;
    16             }
    17         }
    18         n--;
    19     }
    20     
    21 
    22     for(int k=0; k<length; k++)
    23     {
    24         cout<<a[k];
    25     }
  • 相关阅读:
    第二次站立会议4
    第二次站立会议3
    建议总结
    对搜狗输入法的个人评价
    第二期站立会议10
    典型用户和用户场景描述
    第二期站立会议9
    第二期站立会议8
    第二期站立会议7
    第二期站立会议6
  • 原文地址:https://www.cnblogs.com/supercell/p/3600666.html
Copyright © 2011-2022 走看看