【发布时间】:2014-02-03 20:59:12
【问题描述】:
我正在尝试在传递给递归函数的数组中的范围内查找值的最低索引。
int find(int arry[], int length, int lower, int upper){
if(length>1)
find(arry,length-1,lower,upper);
if(arry[length-1]>=lower && arry[length-1]<=upper)
return length-1;
if(length==0)
return -1;
}
函数调用:
int arry[]={9,2,6,3,2,3};
cout << "Index is: " << find(arry,6,2,3)
这可以找到 HIGHEST 索引值...但是我该如何回溯?所以当函数找到它标记它的值并且不会用另一个覆盖返回值时?我无法更改参数列表以添加标志,并且我不想使用静态变量。
谢谢!
【问题讨论】:
-
std::min_element(arry,arry+6)-arry...哦,等一下,你这样做是为了硬件,不是吗? -
为什么要递归?这些值未排序,因此二进制搜索不起作用。
-
看起来第三个
if必须在第二个if之前。
标签: c++ arrays search recursion