2D阵列上的二进制搜索

时间:2013-02-27 10:06:47

标签: java arrays algorithm binary-search

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

    1  2  3  
    5  6  7  
    9 10 11 

    1  2  3  4  5
    6  7  8  9  10

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

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

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

2 个答案:

答案 0 :(得分:6)

公式非常简单:

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

答案 1 :(得分:1)

size = rows * cols

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

row = mid // cols

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