找到一个城市所连接的最大陆地面积的算法?

时间:2012-12-26 16:20:13

标签: algorithm data-structures geospatial connectivity gaps-and-islands

我有一张世界地图的黑白照片。

我将像素转换为坐标(i,j)索引的二进制值网格(水为0,土地为1)。现在,假设我在陆地上随机选择一个点,而这次是在美国德克萨斯州的某个地方。我想知道我可以前往的所有点的(i,j)坐标,而不必穿越水。在这种情况下,它将是所有北美和南美的任何(i,j)(减去任何周围的岛屿)。

(背后的动机是我试图在c中并行实现SIR感染模型。)

非常感谢你的帮助。

编辑:如果有任何近似方法,我也会感兴趣(如果错误地包含了一些小的离岸岛屿,我不会过分讨论。),也许是通过像四胞胎这样的网格划分方法?再次感谢。

1 个答案:

答案 0 :(得分:8)

您正在寻找flood fill algorithm。它可以递归地完成,也可以手动维护堆栈或使用队列。