Java二进制搜索递归

标签 java compiler-errors binary-search

我必须实现二进制搜索方法来查找值是否在数组中。我必须使用递归。

public static boolean searchBin(int[] array, int x, int l, int r) {

        int center;

        center =(l+r) / 2;
        if ( x > array[center] )
        {
            l = center+1;
        }   
        else 
        {
            r = center-1;
        }

        if ( array[center] == x )
        {
            return true;
        }
        else
        {
            if ( l<=r )
            {
                searchBin(array,x,l,r); 
            }
            else
            {
                return false;
            }
        }
    }

我收到以下错误:

Missing return statement

谢谢。

最佳答案

这是因为错误表明“并非所有路径都返回一个值”。

这是可能的问题:

searchBin(array,x,l,r);

修复将是:

return searchBin(array,x,l,r);

关于Java二进制搜索递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079763/

相关文章:

java - 双倍乘以 100 然后转换为 long 给出了错误的值

php - 为什么我的 'shutdown callback '在使用register_shutdown_function()时无效?

c++ - 尝试最小化构架时出错

java - 二进制搜索和文件读取进入无限循环

java - 云存储 - 上传图像时文件的内容类型显示为数据

java - 使用 Apache Thrift 时出现 TTransportException 异常

java - 为什么我的 switch 语句中不能有重复的 case?

arrays - 分而治之算法(二分查找的应用?!)

iOS 二分搜索代码在超过 256 项时崩溃

java - 在哪里声明用于在环境模式下更新表盘的闹钟管理器?