数据结构(冒泡法)

来源:互联网 发布:淘宝排名突然没有了 编辑:程序博客网 时间:2024/06/06 21:03
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;    //本趟未发生交换
                       }
                    }


原创粉丝点击