小编use*_*708的帖子

为什么返回执行两次

在这种情况下,值匹配并且boolean的值设置为true,但是返回被调用两次并且将值更新为false.任何人都可以建议我在这里缺少什么?

public class BinSearch {

    public static void main(String[] args) {

        BinSearch bin=new BinSearch();
        int arr[]= {2,4,6,8,10,12,14,16};
        boolean b=bin.binSearch(arr,0,arr.length-1,12);
        System.out.println("Number found "+b);

    }

    public  boolean binSearch(int arr[],int low,int high,int val)
    {
        int mid=(low+high)/2;

        if(arr[mid]==val)
        {
            return true;
        }

        else if(arr[mid]>val)
        {
            binSearch(arr,mid+1,high,val);
        }

        else  
        {
            binSearch(arr,low+1,mid,val);
        }

        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

java recursion binary-search

3
推荐指数
1
解决办法
125
查看次数

标签 统计

binary-search ×1

java ×1

recursion ×1