用于搜索2D数据数组并围绕相同类型的数据创建边界的好算法是什么?数据是随机的,因此除了它包含数值之外,不会有任何可用数据的先验知识。
否则是否有关于这个主题的好文章/书籍?
修改
这是我想要实现的一个例子:
对于两个人来说同样如此
答案 0 :(得分:3)
广度优先搜索可以帮到你。首先构建图 G 如下:
图 G 的边缘(u,v)是唯一的,如果第u个单元格的值=第v个单元格的值。
然后执行BFS会给出很好的图形,您可以使用单元格的值方便地标记为访问过。
答案 1 :(得分:1)
这是一个复杂的问题,我认为相当于找到一组点的凹壳。
首先必须为数据点定义相等操作,以便确定“相同排序”数据点的集合。
以这种方式识别出一组点后,您需要找到该组点的凹壳。
(我假设您想要凹形船体,而不是convex hull)。
寻找凹形船体是一件非常重要的任务。
如果它实际上是你想要的凸包,请参阅此处了解C#中的实现:
答案 2 :(得分:0)
一个天真的解决方案(适用于小数据集)是定义一个带有两个参数的比较运算符,如果它们相等则返回true,否则返回false然后简单地比较所有相邻值对(水平和垂直)并且如果比较返回false,则绘制边框。