Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3472581
  • 博文数量: 1450
  • 博客积分: 11163
  • 博客等级: 上将
  • 技术积分: 11101
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-25 14:40
文章分类

全部博文(1450)

文章存档

2017年(5)

2014年(2)

2013年(3)

2012年(35)

2011年(39)

2010年(88)

2009年(395)

2008年(382)

2007年(241)

2006年(246)

2005年(14)

分类: C/C++

2006-04-25 09:29:38

冒泡排序法是一种最简单,也是最容易实现的一种排序算法。它属于交换排序法中的一种。所谓交换排序法就是指,当出现相临两个值无序时,通过交换两个值的位置来实现排序。

冒泡排序法的思想是,每进行一趟排序时,都使“最轻的气泡”冒到最顶层。所以它最多需要n-1次排序。其中值得说明的是,若在某一趟排序中未发现气泡位置的交换,则说明待排序的无序区中所有气泡均满足轻者在上,重者在下的原则,因此,冒泡排序过程可在此趟排序后终止。


算法:

void bibblesort(int arr[], int N)
{
    int i, j;
    int exch_flag = 0;
    int lep = N-1;    //last exchange position
   
    for(i=1; i    {
        exch_flag = 0;
       
        for(j=0; j            if(a[j] > a[j+1])
            {
                a[j]     = a[j]   ^ a[j+1];
                a[j+1]   = a[j]   ^ a[j+1];
                a[j]     = a[j+1] ^ a[j];
   
                lep = j;
                exch_flag = 1;
            }

        if(exch_flag == 0)
            return;
    }
}
阅读(1100) | 评论(0) | 转发(0) |
0

上一篇:shell排序法

下一篇:冒泡算法

给主人留下些什么吧!~~