我想用c#创建一个数独。我应该使用锯齿状或多维数组。为什么?
我知道,对于简单的数组逻辑,例如sudoku,锯齿状数组更快,更有效。但也许还有其他争论?
提前致谢。
编辑:我需要在数独游戏上执行一些解决方法。像回溯算法一样。我发现多维数组有更好的语法。
我想我的问题是:最简单易用,实施和修改?
答案 0 :(得分:6)
不要仅仅为了过早优化而让事情变得复杂。使用一个简单的多维数组,然后如果您发现它导致性能问题,请重构您的代码以考虑到这一点。
提示:您可能遇到的任何性能问题都不会来自多维或锯齿状数组的选择。
答案 1 :(得分:4)
选择最能代表特定数据的数据结构。
您是否使用数组来表示具有固定尺寸的事物网格(例如,数独解决方案)?然后使用多维数组。
您想要存储在数组中的内容的数量是否会发生变化(例如,数独启动模式或用户为数独单元格输入的潜在值)?那么也许锯齿状阵列更好。
您的程序中也可能有多种类型的数组,例如用于存储解决方案的多维数组和用于存储其他数据的锯齿状数组。或完全不同的数据结构。
最重要的是,对于数据量相对较少的数独游戏,性能不会成为您最大的问题。您最好尽可能清楚地构建程序,并在以后担心性能。
答案 2 :(得分:0)
我个人发现像这样的东西,锯齿状阵列更清晰,但这取决于个人喜好。在一天结束时,数独不会出现性能问题,所以请使用您认为更清楚的。