线性表的元素递增有序且顺序存储,设计算法在最少时间找到值为x的元素,若找到则将其与后继元素交换若找不到则将其插入表中并使表中元素仍递增有序
void SearchExchangeInsert(ElemType A[],Elemtype x)
{
int low=0,high=n-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(A[mid]==x)
break;
else if(A[mid]<x)
low=mid+1;
else
high=mid-1;
}
if(A[mid]==x&&mid!=n-1)
swap(A[mid],A[mid+1]);
if(low>high)
{
for(i=n-1;i>=low;i--)
A[i+1]=A[i];
A[low]=x;
}
}