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

posted @ 2011-04-24 18:02  windroc  阅读(192)  评论(0编辑  收藏  举报