您好,我照着书上写了一个折半查找的程序,用以实现快速查询一个数值在数组中的位置,代码如下(图片代码有点小错误,以下面代码行为准)
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,应该是返回值出了问题,但是还必须得设置返回值,那请问应该怎么处理呢??
折半查找需要你的那个数组是有序的才可以实现,你首先需要将你那个数组排序再调用你那个方法就可以了。
报什么错都不给吗?