我有一个高度图(一个浮点值的二维数组),我希望找到地图上的最高点,一旦找到这一点,我想改变它的值,以及所有附近点的值。什么是用于有效检索最高点的最佳数据结构?
要求:
我当前的想法是一个优先级队列,我可以找到O(1)中的最高点,我可以更改值的加载并在O(n log n)中堆积。
的Nb。我将此标记为语言无关和Lua,因为它主要是与语言无关的问题,但我将在Lua中实现最终解决方案。
答案 0 :(得分:2)
如果内存不是那么大的问题,我会将每个值作为表存储在优先级队列中,以便每个表都有其数据值和对其最近邻居的引用。像这样:{data = number,neighbors = {...}}。
答案 1 :(得分:0)
在构建优先级队列时,我只是扫描数组并返回找到的最高值的索引。然后,我可以访问O(1)中“附近”数组的任何元素。
或者我错过了什么?