Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Algorithm_Binary Search - Fatal编程技术网

Java 二维数组上的二进制搜索

Java 二维数组上的二进制搜索,java,arrays,algorithm,binary-search,Java,Arrays,Algorithm,Binary Search,我有一个完全排序的2D数组。下面的数组是示例 1 2 3 5 6 7 9 10 11 及 我想在这些数组上使用二进制搜索。让rows为行数,cols为列数 最初start=0和end=rows*cols-1 在上面的3 X 3数组中,中点是四个[9个元素]。现在,我如何找到相应的行和列的中点?有什么标准公式吗?公式非常简单: row = number/cols_per_row; col = number%cols_per_row; 让size=row

我有一个完全排序的2D数组。下面的数组是示例

    1  2  3  
    5  6  7  
    9 10 11 

我想在这些数组上使用二进制搜索。让
rows
为行数,
cols
为列数

最初
start=0
end=rows*cols-1


在上面的3 X 3数组中,中点是四个[9个元素]。现在,我如何找到相应的行和列的中点?有什么标准公式吗?

公式非常简单:

row = number/cols_per_row;
col = number%cols_per_row;

size=rows*cols

mid=size//2
(整数除法)

row=mid//cols


col=mid%cols
(其余部分为整数除法)

Hmm..只是好奇。你是怎么想到这个的?好吧,对于每行的每一个cols\u数字,你向下一行。这就解释了为什么第一个数字是用这个公式找到的,对吗?至于第二个,您所在的列循环重复每行的每个列数,所以
%
描述了这种行为,对吗?@ThorstenKranz OP每行的列数。由于他/她没有指定存储此数字的变量,我只使用了此符号。@IvayloStrandjev-谢谢。我明白了。
row = number/cols_per_row;
col = number%cols_per_row;