有点被if语句,弄混了。
书上的例子是:这么一个折半查找函数,用于判定已非排序的数组V中是否存在某个特定的x值。数组v元素以升序排列~~~ 后面省略,就是对if之后的执行请教下怎么执行的。函数如下:
int binsearch(int x,int [v],int n)
{
int low,high,mid;
low=0;
high=n-1;
while(low<=high){
mid=(low+high)/2;
if(x<v[mid])
high=mid-1;
else if(x>v[mid])
low=mid-1;
}
return -1;
}
在这,我就是问下,假如说执行了: if(x<v[mid])
high=mid-1;
语句后,是回到while再判断,还是直接结束循环呢?
我觉得是再回到while进行判断,但书上说while循环语句内共执行两次测试,不懂?