我想用c#做一个数独游戏。我应该使用锯齿数组还是多维数组?,为什么?
我知道锯齿数组对于简单的数组逻辑来说更快更有效,比如数独。但也许还有其他的理由?
提前感谢。
编辑:我需要在数独上执行一些解决方法。比如回溯算法。我发现多维数组有更好的语法。
我想我的问题是:哪个最容易使用,实现和修改?
不要为了过早的优化而把事情复杂化。使用一个简单的多维数组,如果以后你发现它会导致性能问题,重构你的代码,把这个考虑进去。
提示:您可能遇到的任何性能问题都不会来自于选择多维数组或锯齿数组。
选择最能代表特定数据的数据结构。
您是否使用数组来表示具有固定维度的事物的网格(例如,数独解决方案)?然后使用多维数组。
您想要在数组中存储的内容的数量是否可以更改(例如,数独开始模式或用户为数独单元输入的潜在值)?那么锯齿数组可能更好。
你也可以有多种类型的数组在你的程序中,例如一个多维数组来存储解决方案和一个锯齿数组来存储其他数据。或者完全不同的数据结构
底线是,对于数据量相对较少的数独游戏,性能不会是最大的问题。您最好尽可能清晰地构建程序,然后再考虑性能问题。
我个人认为对于这样的内容,锯齿数组更易于阅读,但这取决于个人偏好。在一天结束的时候,数独不会有性能问题,所以使用你觉得更清楚的。