[Algorithms][Chap2]关于二分查找递归算法的问题
有关递归函数的返回值问题,最外层是否要有返回值?
加入Return的程序
1 // 二分查找
2 template<typename T>
3 int findVector(std::vector<T> & dataSet , T findValue , int p ,int q )
4 {
5 int m = std::floor((p+q)/2.0);
6 if(dataSet[m] == findValue)
7 return m;
8 else if(p < q)
9 {
10 if(dataSet[m] > findValue)
11 return findVector(dataSet,findValue,p,m-1);
12 else
13 return findVector(dataSet,findValue,m+1,q);
14 }
15 else
16 return -1;
17 }
去掉 11行和13行的return依然可以得到正确的结果?