0

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

    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 数组中,中点是四个 [9 个元素]。现在如何找出中点对应的行和列?有什么标准公式吗?

4

2 回答 2

6

公式很简单:

row = number/cols_per_row;
col = number%cols_per_row;
于 2013-02-27T10:08:18.727 回答
1

size = rows * cols

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

row = mid // cols

col = mid % cols(整数除法休息)

于 2013-02-27T10:17:20.610 回答