我 99% 确定我的问题是每次开始时我都将其设置为零。但我不确定如何保持低指数始终代表低指数,而不管我的递归深度如何。如果它准确地告诉我低指数的指数,我认为我不会有问题。
到目前为止,这是我的代码:
int recBSearch(vector<int> v, int size, int item)
{
int index = size / 2;
int curr = v[index];
int low = 0;
int high = size -1;
if (v[index] == item)
return index;
else if (v[index] > item)
{
high = index;
index = (high+low)/2;
size = high - low;
return recBSearch(v, size, item);
}
else if (v[index] < item)
{
low = index;
index = (high+low)/2;
size = high - low;
return recBSearch(v, size, item);
}
return -1;
}