结构推理 编写一个双向冒泡排序算法,即在排序过程中交替改变扫描方向。题目要求:数据从数组的0单元放起。
【正确答案】void dbubble(RECORDNODE*r,int n)
   { int i,j;
       RECORDNODE temp;
       int ex=1;
       i=0;
       while(ex)
       {  ex=0;
           for(j=n-i-1;j>i;j--)
               if(r[j].key<r[j-1].key)
               {  ex=1;
               temp=r[j];
                   r[j]=r[j-1];
                   r[j-1]=temp;
               }
           for(j=i+1;j<n-i-1;j++)
               if(r[j].key>r[j+1].key)
               { ex=1;
                   temp=r[j];
                   r[j]=r[j+1];
                   r[j+1]=temp;
               }
           i++;
       }
   }
【答案解析】