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