结构推理 数组中的元素有正整数或负整数。设计一个算法,将正整数和负整数分开,使数组的前一半为负整数,后一半为正整数。不要求对这些元素排序,要求尽量减少交换次数。
【正确答案】void partzf(RECORDNODE r[],int n)
   {  int i,i;
       i=1; j=n;    /*数据从数组的0单元开始存储*/
       while(i<j)
       {  while(i<j&&r[i].key<0)
               i++
           while(i<j&&r[j].key>0)
               j++;
           if(i<j)
           { r[0]=r[i];
               r[i]=r[j];
               r[j]=r[0];
               i++;
               j--;
           }
       }
   }
【答案解析】