沙沙网络跑路了:编程题看不懂,请帮忙看看?

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 18:29:08
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;
else return __ mid_;
}
return -1;
}
low, high, mid;表示什么东西啊?

low,high,mid是该方法中的变量,从代码的角度来看,可能代表的是最小值,最大值和中间值三个意思。

代码解释:
该方法(binsearch(int x, int v[], int n) )内部 首先定义了三个int型的变量,其中low被赋值为0,high赋值为 n-1(其中n为方法传递过来的参数);当low值小于等于high值时,将mid赋值为(low+high)/2;如果参数x的值小于数组v中的第mid个变量的值时,将high赋值为mid-1;否则如果参数x的值大于数组v中的第mid个变量的值时,将low赋值为mid+1;如果都不符合(即x的值等于数组v中的第mid个变量的值)返回 mid值;