joyner_zhang
2019-07-23 14:06
采纳率: 77.8%
浏览 274
已采纳

Java折半查找运行错误?

您好,我照着书上写了一个折半查找的程序,用以实现快速查询一个数值在数组中的位置,代码如下(图片代码有点小错误,以下面代码行为准)
图片说明

class Demo
{
    public static <AnyType extends Comparable<? super AnyType>>int binarySearch(AnyType [] a,AnyType x)
    {
        int low=0,high=a.length-1;
        while(low<=high)
        {
            int mid=(low+high)/2;
            if(a[mid].compareTo(x)<0)
                low=mid+1;
            else if(a[mid].compareTo(x)>0)
                high=mid-1;
            else
                return mid;
        }
        return -1;
    }
    public static void main(String[] args)
    {
        Integer[] i= {1,243,23,5523,64,26,32,6457};
        System.out.println(binarySearch(i,23));
    }
}

然而每一次都返回的是-1,应该是返回值出了问题,但是还必须得设置返回值,那请问应该怎么处理呢??

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • space1103 2019-07-23 14:27
    已采纳

    折半查找需要你的那个数组是有序的才可以实现,你首先需要将你那个数组排序再调用你那个方法就可以了。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • localhost-9527 2019-07-23 14:10

    报什么错都不给吗?

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题