按簇

时间:2017-11-05 22:21:12

标签: java algorithm indexing geometry cluster-analysis

我有一个问题需要解决,因为在互联网搜索之后我没有找到任何可用的算法,而我自己还没有找到令人满意的解决方案。

问题定义:

我得到了一组N-many点,由它们的X坐标和Y坐标定义,我应该给每个点一个0到N之间的唯一索引。虽然有几个条件:

1)如果两点之间的几何距离很小,它们的指数之间的差异也应该很小。

2)如果A点的X坐标高于B点,它的指数值也应该更高。

3)如果A点的Y坐标高于B点,它的指数值也应该更高。

其他

算法不需要特别快速或高效,因为数据相当小(50~100分)。

我需要这个算法用于只有2个按钮的用户界面,用于浏览数据集。使用一个按钮,用户选择下一个点,另一个用户选择前一个点。

欢迎所有建议。提前谢谢。

示例图片:

这是可能的结果示例。请注意如何不满足所有点的条件(因为这是不可能的),但是如何在簇之间很好地分布索引。

Example Output

1 个答案:

答案 0 :(得分:1)

Morton curve aka Z-order (Wikipedia)

对点进行排序

然后分配数字。