c++查找一组点中最近的四个

标签 c++ k-means nearest-neighbor

<分区>

我有一组点,每个点都有一个 x 和 y 坐标。我想找到这些点中最接近的 4 个(如果绘制所有点将位于不同的位置,但其中 4 个点总是彼此靠近,我希望能够确定其中的哪一个这四个点是编程方式)。我该怎么做呢?有人告诉我它与 k-means 或最近邻居有关,但从我到目前为止的搜索结果来看,我不知道如何让它为我的案例工作,因为我找到了这些点的接近度相对于彼此而不是某个固定点。对于要研究的主题/算法或代码片段的任何建议,我们将不胜感激。

我认为确切问题的图像可能会有所帮助。所以这 8 个点包含在一个 vector 中,我希望能够确定哪四个点聚集在右边。

enter image description here 提前致谢。

最佳答案

蛮力方法是选择四个点(每个排列)的每个可能选择并计算例如: 1) 点围成的面积, 2)点的凸包周长, 3) ... 通过获取由 1)、2) 或 3) 计算的最小值,您将找到您的四分。

关于c++查找一组点中最近的四个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410744/

相关文章:

matlab - k-均值聚类的不规则图,异常值去除

c++ - 最近邻搜索的高效实现

插入数据后 C++ 映射为空。

c++ - C++ 中 string::substr() 的运行时间是多少?

python-2.7 - 如何使用 itertool 进行列相交

c - 对运动 vector 进行分组

python - 高效查找具有割断的邻居并返回索引

haskell - 如何在 Haskell 中实现快速、惰性的 KDTree?

c++ - 使用 gprof 和 boost

c++ - 使用 glut 和 std::string 时 main() 之前的段错误?