结构推理
数组中的元素有正整数或负整数。设计一个算法,将正整数和负整数分开,使数组的前一半为负整数,后一半为正整数。不要求对这些元素排序,要求尽量减少交换次数。
【正确答案】
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--;
}
}
}
【答案解析】
提交答案
关闭