下列算法利用二分查找方法在有序表r中插入元素x,并保持表r的有序性,其中参数*n为表r的长度。请在空缺处填入合适的内容,使其成为一个完整的算法。
void BinInsert(SeqList r,int *n,DataType x)
{ int low=1,high=*n,mid,i;
while(low<=high)
{ mid= ___________________ ;
if (x.key<r[mid].key)high=mid-1;
else _____________________ ;
}
for(i=*n; ________________ ;i--)
r[i+1]=r[i];
____________________________ ;
*n++;
}
void BinInsert(SeqList r,int *n,DataType x)
{ int low=1,high=*n,mid,i;
while(low<=high)
{ mid= (low+high)/2;
if (x.key<r[mid].key)high=mid-1;
else low=mid+1;
}
for(i=*n; i>=mid ;i--)
r[i+1]=r[i];
r[mid]=x ;
*n++;
}
{ int low=1,high=*n,mid,i;
while(low<=high)
{ mid= (low+high)/2;
if (x.key<r[mid].key)high=mid-1;
else low=mid+1;
}
for(i=*n; i>=mid ;i--)
r[i+1]=r[i];
r[mid]=x ;
*n++;
}
温馨提示:答案为网友推荐,仅供参考