高度图的最佳数据结构

时间:2010-02-24 15:32:59

标签: language-agnostic lua data-structures

我有一个高度图(一个浮点值的二维数组),我希望找到地图上的最高点,一旦找到这一点,我想改变它的值,以及所有附近点的值。什么是用于有效检索最高点的最佳数据结构?

要求:

  • 有效找到最高点
  • 更改任意一组点的值,此设置将始终包含最高当前点,并且附近的点数加载,每个点的增量将不同。

我当前的想法是一个优先级队列,我可以找到O(1)中的最高点,我可以更改值的加载并在O(n log n)中堆积。

的Nb。我将此标记为语言无关和Lua,因为它主要是与语言无关的问题,但我将在Lua中实现最终解决方案。

2 个答案:

答案 0 :(得分:2)

如果内存不是那么大的问题,我会将每个值作为表存储在优先级队列中,以便每个表都有其数据值和对其最近邻居的引用。像这样:{data = number,neighbors = {...}}。

答案 1 :(得分:0)

在构建优先级队列时,我只是扫描数组并返回找到的最高值的索引。然后,我可以访问O(1)中“附近”数组的任何元素。

或者我错过了什么?