为了账号安全,请及时绑定邮箱和手机立即绑定

return语句不结束方法java

return语句不结束方法java

慕桂英4014372 2021-07-20 17:26:38
public class Interpolation_search {    public static void main(String...s) {        int rr[]= {1,2,3,4,9,10,15,80};        System.out.println(search(rr,0,7,3));    }    static int search(int ar[], int lo, int hi,int X) {        if(lo<hi&&ar[lo]!=ar[hi]) {            int mid=lo + ((hi-lo)/(ar[hi]-ar[lo]))*(X-ar[lo]);            if(X==ar[mid])                return 1;      //l1            else if(X>ar[mid])                search(ar,mid+1,hi,X);            else search(ar,lo,mid-1,X);        }        return 0;              //l2    }}return 首先在 l1 执行两次,第二次在 l2 执行。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您似乎在理解递归方面有困难。

您的方法search()应该返回一个 int 结果。并且方法本身反复调用自己(使用不同的参数)。事情是:你们都忽略了这些递归调用。

换句话说:真正的答案是让您退后一步并了解递归含义以及如何正确使用它。作为初学者,你可以尝试改变

search(ar,mid+1,hi,X);

return search(ar,mid+1,hi,X);


查看完整回答
反对 回复 2021-07-29
  • 1 回答
  • 0 关注
  • 441 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信