我有一个完全排序的2D数组。下面的数组是示例
1 2 3
5 6 7
9 10 11
和
1 2 3 4 5
6 7 8 9 10
我想在这些数组上使用二进制搜索。让rows
为行数,cols
为列数
最初为start = 0
和end = rows * cols -1
在上面的3 X 3阵列中,中点可以是4 [9个元素]。现在我如何找到具有中点的相应行和列?那有什么标准公式吗?
答案 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
(其余为整数除法)