Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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_Arrays_Binary Search - Fatal编程技术网

Java 我有下面的方法,可以得到一个二维数组和一个值。方法检查值是否在数组中

Java 我有下面的方法,可以得到一个二维数组和一个值。方法检查值是否在数组中,java,arrays,binary-search,Java,Arrays,Binary Search,我有下面的方法,可以得到一个二维数组和一个值。方法检查值是否在数组中 我不明白为什么我需要我用粗体突出显示的代码行(如果(m[I][m[I].length-1)],没有它,代码仍然可以工作,但会使它运行得更快。 假设您有一个已排序的二维数组: [[1,2,3],[4,5,6],[7,8,9]] 然后你可以看到,如果你在搜索8,你不需要对第一行进行二进制搜索,因为3比8小,他是其中最大的数字。 您甚至可以通过执行二进制搜索而不是循环来使此代码更出色。如果没有它,代码仍然可以工作,但会使它运行得更快

我有下面的方法,可以得到一个二维数组和一个值。方法检查值是否在数组中


我不明白为什么我需要我用粗体突出显示的代码行(如果(m[I][m[I].length-1)],没有它,代码仍然可以工作,但会使它运行得更快。 假设您有一个已排序的二维数组: [[1,2,3],[4,5,6],[7,8,9]] 然后你可以看到,如果你在搜索8,你不需要对第一行进行二进制搜索,因为3比8小,他是其中最大的数字。
您甚至可以通过执行二进制搜索而不是循环来使此代码更出色。

如果没有它,代码仍然可以工作,但会使它运行得更快。 假设您有一个已排序的二维数组: [[1,2,3],[4,5,6],[7,8,9]] 然后你可以看到,如果你在搜索8,你不需要对第一行进行二进制搜索,因为3比8小,他是其中最大的数字。
您甚至可以通过执行二进制搜索而不是循环来使这段代码更出色。

我假设您浪费了一个额外的搜索调用,因为您的二进制搜索函数不依赖于该边界,但仍然受到它的影响。我假设您浪费了一个额外的搜索调用,因为您的二进制搜索函数不依赖于该边界,但仍然受其影响受它的影响。
public static boolean findValWhat (int[][] m, int val)
{
    for (int i = 0; i < m.length; i++) {
        **if (m[i][m[i].length-1] <= val){**
            if (binarySearch(m[i], val) == val){
                return true;
            }
        }
    }

    return false;

}