列,行的索引算法?

时间:2012-11-23 04:50:07

标签: java c++ algorithm

假设我有一个索引12(第12个元素)从左到右,从上到下。

我有一个数组[4] [4]。

在给出1D指数12的情况下,计算指数[3] [2]的最快方法是什么? (1D指数从1开始)。

由于

2 个答案:

答案 0 :(得分:1)

不知道这是否最快,但它绝对简单:

假设数组[x] [y]

ix = floor(index / y)
iy = index % y

示例:

01
23
45

x = 3
y = 2

index = 3
ix = floor(3 / 2) = 1
iy = 3 % 2 = 1    

index = 5
ix = floor(5 / 2) = 2
iy = 5 % 2 = 1

答案 1 :(得分:0)

给定[x] [y]是数组

使用此公式

[index of 1d array]= (rnum * colsize) + (colnum + 1)

所以[3] [2]与colsize=4

= (3 * 4) + (2 + 1)
= 15