0
我想知道什么会比其他解决方案执行时更快,哪些内存更少内存。2维阵列vs简单阵列
当我自己问这个问题时,我正在做数独。正如你所知,数独是一个9×9的网格数组,所有围绕数独的解算器都在实现数组[9] [9]。我认为这是因为它看起来像你习惯玩的网格。
我的问题很简单,因为网格始终是一个方形(例如:9×9),什么是之间的最快和最低的内存消耗: - 2Dimensions:数组[9] [9] - 单一维度:数组[81 ]
在两种情况下计算访问值(如果数组从第0个索引开始,并且您需要第9个和第9个网格中的第5个和第6个行): - 2D Array的坐标几何(例如:Array [5-1 ] [6-1]) - 单个计算位置(Array [((6-1)* 9)+(5-1)])
有没有什么方法可以测试?
不要担心。只需使用该算法最方便的结构即可。除非你拥有数百万个网格,否则不会有任何改变。 – Barmar
但是要回答你的问题,单个数组将会减少内存,因为它只包含81个值,而数组数组包含81个值和9个指针。 – Barmar
当然,这就是我告诉自己,但只是好奇心,如果有一天,当网格的大小,它应该有区别 – aviel