相关疑难解决方法(0)

array:将一维数组的索引转换为多维数组的向量索引

这将是一个很长的问题,请在阅读前深呼吸.

我想了解将一维数组的索引转换为多维数组的向量索引的最快算法.

让我们以一个例子来理解我为什么需要它:

我有一个二维数组:数组[i1] [i2]

i1从i1_b = 0运行到i1_e = 2

i2从i2_b = 0运行到i2_e = 1

所以这个数组逐行输出到文件中:

阵列[0] [0]

阵列[0] [1]

阵列[0] [2]

阵列[1] [0]

阵列[1] [1]

阵列[1] [2]

现在我逐行读取文件,索引k是最后读取的行号.

我读了第一行,即Array [0] [0]和k = 0

我读了第二行,即Array [0] [1]和k = 1

...

可以注意到k将从k_b = 0运行到k_e = 5和

k = 0将对应于i1 = 0,i2 = 0

k = 1将对应于i1 = 0,i2 = 1

...

问题:所以我的问题是如何以最快的方式将k转换为i1和i2?(我在阅读文件时不需要它,但稍后在我的程序中)

在这个例子中,其中一个解决方案是

i1 = k /(i1_e - i1_b + 1);

i2 = k%(i1_e - i1_b + 1);

问题1:就周期和计算机时间而言,它是否是最快的解决方案?

好.问题2:我们如何将此算法推广到多维数组?

阵列[I1] …

c++ arrays multidimensional-array array-algorithms

3
推荐指数
1
解决办法
1666
查看次数