我是C++和Java的业余程序员。
我有一个用于特定项目的二维 bool(boolean) 数组(16行,16列)。
该数组的内容会定期更新。有些被更改,其他元素保持不变。目前,我只是在扫描数组的每个元素,以便让我知道其中的哪个更新了它们的值。
我是否有算法或有效的方式来做到这一点?我将使用的语言是C++。

最佳答案

这个简单的答案是,没有有效的算法可以扫描矩阵。您可以通过使用更紧凑的结构(例如位字段和缓存友好的布局)来稍微提高性能,但是老实说,它不能解决潜在的问题。

问题来自这样一个事实,您需要查看矩阵中的每个值以查找更改。

接下来的操作取决于错误更改的计算强度。如果影响不大,则只需蛮力就可以了,因为256位确实不是那么多。但是,如果一项变更触发了庞大的计算昂贵的算法,则您需要围绕它进行一些簿记逻辑。一种简单的方法是在编写更改时记录更改队列,然后在每个刻度上,查看需要执行的操作。

关于java - 需要矩阵搜索算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47504503/

10-11 22:55
查看更多