二分查找法
如何利用二分查找法在一个有序表中插入一个元素X,并保持表的有序性。
bininsert(sqlist r,int x,int n)
{
int low=1,high=n,mid,inplace,i,find=0;
while (low<=high && !find)
{
mid=(low+high) /2;
if (x<r[mid].key) high=mid-1;
else if (x>r[mid].key) low=mid+1;
else {
i=mid;
find=1;
}
}
if (find) inplace=mid;
else inplace=low;
for (i=n;i>=inplace;i--)
r[i+1].key=r[i].key;
r[inplace].key=x;
}