首页 > 其他 > 详细

排序算法复习—冒泡排序

时间:2014-03-16 06:50:34      阅读:453      评论:0      收藏:0      [点我收藏+]

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

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

bubuko.com,布布扣
    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;
            }
        }
    }
bubuko.com,布布扣

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

bubuko.com,布布扣
 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     }
bubuko.com,布布扣

排序算法复习—冒泡排序,布布扣,bubuko.com

排序算法复习—冒泡排序

原文:http://www.cnblogs.com/supercell/p/3600666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!