【发布时间】:2011-01-06 18:34:50
【问题描述】:
我正在构建广度优先的图形搜索算法,用于搜索伦敦地铁。
我已经弄清楚了算法,但您可能很清楚,该算法需要一个队列 ADS 来跟踪所有需要搜索的边(以正确的顺序)。
我一直在阅读有关管理队列和大量或非常大量排队项目(边缘)的效率问题。
谁能告诉我如何实现一个基于 Java ArrayList 的队列,它可以跟踪头部和尾部并在内存增长时有效地管理内存?
非常感谢任何提示/指针!
【问题讨论】:
-
我要问的第一件事是你真的有问题吗 - 它让你等待吗?第二个是如果它让你等待你是否抽样看看它花费最多的时间在做什么。 FIFO 可能是一个问题,但先验可能不是。正如一个大概的猜测,您应该能够每微秒处理 1 个节点,所以我认为速度不会成为问题。
-
我宁愿使用某种专门的队列,因为它比一直对队列进行排序要好。虽然这不是必须的,但我只是想了解更多关于队列以及如何完成它们的信息。
-
我想我不明白你为什么需要排序,但无论如何,@Kim 的回答看起来不错。
标签: java performance queue breadth-first-search