【问题标题】:Coding union-find in 4-connectivity two-pass algorithm在 4-connectivity 两遍算法中编码 union-find
【发布时间】:2012-07-21 12:18:20
【问题描述】:

我尝试在 C++ 中编写一个组件标签代码,该代码使用具有 4 连接性的两遍算法。您可能想查看https://en.wikipedia.org/wiki/Connected-component_labeling。在该算法中有一个名为 union-find 的数据结构。我无法获得它的结构,也无法对其进行编码,因为我无法理解算法是如何使用该结构的。 您是否知道如何在该算法中使用联合查找,或者至少在 C++ 环境中是否有任何本机库,或者您是否知道任何可以理解该结构的来源。也许动画可能有用。

【问题讨论】:

标签: c++ image-processing data-structures


【解决方案1】:

Union-Find 的数据结构也称为“不相交集”。实际上,您可以在其 Wikipedia 页面 (http://en.wikipedia.org/wiki/Disjoint-set_data_structure) 上找到更多关于 disjoint-set 的描述和信息。对不相交集数据结构调用的更详细介绍可以在“算法简介”一书第 21 章中找到(也可以在 Wikipedia 页面的参考 1 中找到。)

通常当我们谈论不相交集数据结构时,我们谈论的是一种称为“不相交集森林”的特定实现。这个具体实现的好处在于:1) 非常容易实现 2) 具有完美的时间复杂度(几乎恒定)。

您还可以在 Wikipedia 页面或我提到的书的第 21 章中找到一些关于如何实现不相交集森林的伪代码。

【讨论】:

  • 您可以使用标记工具栏中的地球/箭头按钮添加超链接。
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多