[Algorithms][Chap2]关于二分查找递归算法的问题

目录

[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依然可以得到正确的结果?