效率与内存权衡

Dav*_*vid 1 c++ algorithm performance

我正在用c ++创建一个交互式数独板.每当用户更改值时,我想检查电路板是否完成.当电路板上的所有空间都填满时,电路板将完成.我对如何做到这两点的想法是:

  1. 创建一个包含填充空格量的私有数据成员.要检查电路板是否完成,我只需要检查该值是否等于boardLength ^ 2

  2. 创建一个遍历板的成员函数,当找到空格时返回false,如果它通过板而没有找到任何空格,则返回true

这是一个偏好的问题,还是有更多接受/正确的方法来做到这一点?

mea*_*gar 9

这是一个偏好的问题,还是有更多接受/正确的方法来做到这一点?

还有就是优化,在一般的接受和正确的方法:

在确定实际问题时,在实际需要时优化速度或内存占用.您项目的独特要求将决定什么构成"问题".

否则,请优化代码以提高可读性和可维护性.

在您的特定情况下:

有可能无论您选择哪种算法,您的检查都会很快发生,以至于您将无法对其进行测量,用户将永远不会注意到简单解决方案与"快速"解决方案之间的区别.任何优化此操作的尝试(以复杂性或可读性或编写代码所花费的时间为代价)都是不公平的权衡.

使用最简单的解决方案.完成后,如果用户输入有明显的延迟,并且您可以确认它是由对电路板完成的低效检查引起的,请考虑改进算法的方法.