Position BinarySearch(List L,ElementType X)
{
Position left=1,right=L->Last;
Position center=(left+right)/2;
while(X!=L->Data[center] && left<right){
if(X<L->Data[center]){
right=center-1;
}else if(X>L->Data[center]){
left=center+1;
}
center=(left+right)/2;
}
if(X==L->Data[center]) return center;
else return NotFound;
}
注:若将循环测试条件中的left<right改为left !=right,测试点6:大数据找不到 会出现运行超时的错误
暂未发现原因