好的,基本上我的程序中有2个多维数组:
生成的距离: 空
999.0 22.0 38.0 9.0 12.0
10.0 999.0 9.0 22.0 24.0
10.0 41.0 999.0 25.0 49.0
4.0 2.0 18.0 999.0 1.0
4.0 38.0 8.0 20.0 999.0
道路矩阵:
null town town national regional
town null national motorway motorway
town motorway null regional town
motorway national national null town
town town national regional null
第一个数组生成距离,而第二个数组生成这些距离的道路类型。
我正在使用算法来计算最佳路线,我在第一个矩阵上工作。我使用了一个数组列表。
[0,4,3,1,2,0]
基本上我想得到第二个数组中道路的索引。
结果应如下[区域,区域,国家,国家,城镇]
我只是想知道使用第一个矩阵生成的结果最有效的方法是什么?
由于
答案 0 :(得分:0)
由于您正在使用第一个数组中的数据填充第二个数据,因此最好是将它们彼此靠近以防止尽可能多的缓存未命中。
例如:
public class Road {
public float distance;
public RoadType roadType;
};
// if you know the size, try using an actual array of Road
List<Road> roads;
除非您希望更高效地访问该数据,否则您可能需要更改数据的内存布局。 (在上面的例子中,它应该在创建时有效)