问答题
下列算法是利用折半查找算法在一个有序表中插入一个元素X,并保持表的有序性。请将程序中空白处填上适当的语句完成功能。
int bininsert(sqlist r,int x,int n)//将x插入到r[1.-n]中并保持其有序性
{int low:1,high=13.,mid,flag=l,pos,i; //插入的位置为pos
while( (1) &&flag)
(mid=(log+high)/2;
if(xr[mid].key) (3) ;
else flag=0;
if(!flag)pos=mid;
else pos=low;
for(i=n;i>=pos;i一一)
(4);
r[pos].key=x;
}
【北京交通大学2005七、1(8分)】
【正确答案】正确答案:(1)low<=high (3)high=mid-1 (3)low=mid+1 (4)r[i+1]=r[i]
【答案解析】