数据结构(冒泡法)

bubble sort  : 从后向前逐渐比较大小顺序,一个接一个的比较,最后列出排列顺序的方法。

如有4位数字:43 、21 、12、54 用bubble sort 排列结果 

                       初始              第一趟             第二趟           第三趟
                          43                  12                       12                  12
                          21                  43                        21                 21 
                          12                  21                        43                 43 
                          54                  54                        54                 54

对任意n个数据都要进行N-1趟的排序,若在某一趟排序中没有记录位置的交换,说明该序列已经按照关键字
排序完了。(如 该例子的确第二和第三趟是不是重复的) ,为了优化代码,采用FLAG来处理!
                   bubblesort(R)     //冒泡排序法
                    recdtype    R[n]   ;
                   {  int  i,  j,  flag  ;
                       recdtype    temp;
                       for( i = 0 ; i< n-2;  i++)  //运行N-1趟排序
                       {   flag=true;
                            for(  j = n-1 ; j>= i ; j--)   //从后往前扫描
                               if( R[j+1].key < R[j].key )  //交换记录顺序 
                                 {  temp = R[j+1]   ;
                                     R[j+1] =  R[j]   ;
                                     R[j]    =  temp   ;
                                     flag = false;      //  置交换位置
                                 }
                            if (flag)      break;    //本趟未发生交换
                       }
                    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值