3-1 折半查找,2个版本
int binsearch(int x, int v[], int n) {
int low, mid, high;
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;
}
int binsearch2(int x, int v[], int n) {
int low, high, mid;
low = 0;
high = n - 1;
mid = (low+high) / 2;
while ( low <= high && x != v[mid] ) {
if ( x < v[mid] )
high = mid - 1;
else
low = mid + 1;
mid = (low+high) / 2;
}
if ( x == v[mid] )
return mid;
else
return -1;
}
两种折半查找算法实现
本文介绍了两种不同的折半查找算法实现方式,并提供了详细的代码示例。第一种实现使用了较为传统的 while 循环结构,而第二种则采用了预先计算中间值的方式进行优化。

被折叠的 条评论
为什么被折叠?



