4

什么是搜索二维数据数组并在同类数据周围创建边界的好算法?数据将是随机的,因此除了包含数值之外,不会有任何可用数据的先验知识。

否则有没有关于这个主题的好文章/书籍?

编辑

这是我要实现的目标的示例:

在此处输入图像描述

两人也是一样

4

3 回答 3

3

广度优先搜索可以帮助你。首先构造图G,如下所示:

G的边(u,v)是且仅当第 u 个单元格的值=第 v 个单元格的值。

然后执行 BFS 会给出很好的图表片段,您可以使用单元格的值方便地将其标记为已访问。

于 2013-07-03T12:24:36.757 回答
1

这是一个复杂的问题,我认为它相当于找到一组点的凹壳。

您首先必须为数据点定义一个相等运算,以便您可以确定“相同排序”数据点的集合。

以这种方式确定了一组点之后,您需要找到该组点的凹壳。

(我假设你想要凹壳而不是凸壳)。

找到凹壳是一项不平凡的任务。

有关详细信息,请参见此处:https ://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions

如果它实际上是您想要的凸包,请参阅此处以 C# 中的实现:

http://miconvexhull.codeplex.com/

于 2013-07-03T11:33:02.423 回答
0

一个简单的解决方案(适用于小型数据集)是定义一个比较运算符,它接受两个参数,如果它们相等则返回 true,否则返回 false,然后简单地比较所有相邻值对(水平和垂直)并绘制如果比较返回 false,则为边框。

于 2013-07-03T11:50:33.880 回答