最适合高度图的数据结构

我有一个高度图(一个由浮点数值组成的二维数组),我想找到地图上最高的点,一旦我找到这个点,我想改变它的值以及所有附近点的值。什么数据结构最适合实现高效的最高点检索?

要求:

  • 高效地找到最高点
  • 改变一组任意点的值,这组点将始终包含当前最高点和一堆附近点,每个点的差异都不同。

我目前考虑使用优先队列,可以在 O(1) 的时间内找到最高点,并且可以在 O(n log n) 的时间内更改一堆值并堆化。

注:我将此标记为与语言无关的和Lua的问题,因为这是一个基本上与特定语言无关的问题,但我将在Lua中实现最终解决方案。

原文链接 https://stackoverflow.com/questions/2327162

点赞
stackoverflow用户44309
stackoverflow用户44309

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

或者是我漏掉了一些什么?

2010-02-24 15:44:49
stackoverflow用户206020
stackoverflow用户206020

如果内存不是太大的问题,我会将每个值存储在一个优先级队列中,作为一个表,使得每个表都有其数据值和最近邻居的引用。类似于这样:{ data = number, neighbors = { ... } }。

2010-02-24 20:51:26