【发布时间】:2015-07-23 07:16:24
【问题描述】:
所以我写了一个二分查找函数,它接受一个整数数组、一个低索引搜索值、一个高索引搜索值和一个校验值:
int binarySearch(int d[], int low, int high, int check)
{
int mid = (high-low)/2 + low;
if(low > high)
return -1;
if(d[mid] == check)
return mid;
else if(check > d[mid])
return binarySearch(d, mid+1, high, check);
else
return binarySearch(d, low, mid-1, check);
}
但是,我被要求编写一个只接受数据数组、数组长度和搜索值的二分搜索函数?如果没有低变量和高变量,我怎么能做到这一点?如何根据大小声明低变量和高变量?
int binSearch(int d[], int size, int check)
【问题讨论】:
-
将(尾)递归函数转换为非递归循环。然后
low可以是一个初始值为0的局部变量。或者写一个包装函数到binarySearch。
标签: arrays algorithm search binary