Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二进制搜索作业_Java_Binary Search - Fatal编程技术网

Java 二进制搜索作业

Java 二进制搜索作业,java,binary-search,Java,Binary Search,很晚了,我累了,忘了我有作业。最后一个问题是编写一个Java程序,使用二进制搜索方法从列表{-3,10,5,24,45.3,10.5}中查找值45.3 正常情况下我会很好,但我真的不想在早上赶时间,我太累了,想不清楚,所以希望有人能至少帮我一点忙 代码如下: public class questionTwelve { public static int binarySearch(int x) { int low = 0; int high = a.

很晚了,我累了,忘了我有作业。最后一个问题是编写一个Java程序,使用二进制搜索方法从列表
{-3,10,5,24,45.3,10.5}
中查找值45.3

正常情况下我会很好,但我真的不想在早上赶时间,我太累了,想不清楚,所以希望有人能至少帮我一点忙

代码如下:

public class questionTwelve
{
    public static int binarySearch(int x)
    {
        int low = 0;
        int high = a.length - 1;
        int mid;
        int foundindex;

        while (low <= high)
        {
            mid = (low + high) / 2;
            if (a[mid].compareTo (x) < 0)
                low = mid + 1;
            else if (a[mid].compareTo (x) > 0)
                high = mid - 1;
            else
                foundindex = mid.getIndex;
        }
    }

    public static void main(String[] args)
    {
        int a[];
        a[0] = -3;
        a[1] = 5;
        a[2] = 10;
        a[3] = 10.5;
        a[4] = 24;
        a[5] = 45.3;

        System.out.println("Value 45.3 found at index " + binarySearch(45.3));
    }
}
公共类问题12
{
公共静态int二进制搜索(intx)
{
int低=0;
int高=a.长度-1;
int mid;
int-foundindex;
while(低0)
高=中-1;
其他的
foundindex=mid.getIndex;
}
}
公共静态void main(字符串[]args)
{
INTA[];
a[0]=-3;
a[1]=5;
a[2]=10;
a[3]=10.5;
a[4]=24;
a[5]=45.3;
System.out.println(“在索引中找到的值45.3”+二进制搜索(45.3));
}
}

您试图在整数列表中存储10.5和45.3,它们不是整数。这是问题一。然后尝试将45.3(仍然不是整数)传递给接受整数作为参数的方法

在该方法中,您试图对整数值使用compareTo,只需使用标准的运算符


然后您尝试使用mid.getIndex-不确定getIndex是什么,但它不是我用过的int。您的方法也不会返回任何内容。当
a[mid]==x
时,您需要
返回mid
,然后在while循环之后,
返回-1
(表示该数字不在列表中),如果它从未命中其他return语句。

您的问题是什么?另外,将代码放在问题中,而不是放在外部站点上给我“我忘了我有作业了”这只是“我把作业推迟到最后一分钟”的另一种说法。也不要投我的同情票。除了我的答案之外,还有一个想法-你可能想实现一个排序算法(如果你在搜索,你可能也涉及到排序)来对列表排序,而不是在你的主方法中硬编码。另外
a[mid]。compareTo(x)
不会工作,因为
a[mid]
是整数而不是整数。只需使用
a[mid]
a[mid]>x
。现在最后一个问题是问题12中的二进制搜索(double[],double)不能应用于引用此行系统的(double,double)。out.println(“在索引处找到的值45.3”+binarySearch(a[6],45.3));算了吧,没关系。非常感谢你们的帮助。