【发布时间】:2013-09-13 19:26:33
【问题描述】:
我正忙于编码Conways Game of Life,我正在尝试使用一些数据结构来优化它,该结构记录在每个生命周期中应该检查哪些单元格。
我使用 arrayList 作为动态数据结构来记录所有活细胞及其邻居。有没有更好的数据结构或保留更短列表的方法来提高游戏速度?
我问这个是因为经常检查许多单元格但没有更改,所以我觉得我的实现可以改进。
【问题讨论】:
-
对于不熟悉的人,添加“康威人生游戏”的链接可能会有所帮助,或者至少很有趣。
-
几年前我见过一个使用 LinkedList 的实现,速度非常快,但遗憾的是我没有详细信息。它在一本老 Sam 的编程书中。
-
我认为具有 4 个指向其他节点的指针的节点可能非常快
-
无论你做什么,give this a try。超越大多数人的做法,即盲目尝试并希望最好。
-
您可以使用 BitSet 标记活细胞,这将允许您一次跳过 64 个不活动的细胞。您可以向单元格添加前向和后向链接,并避免辅助列表的开销。您可以使用 Hashlife 的思想而忘记低级优化。
标签: java performance data-structures