java - 连接图中最近点的最佳方法

标签 java nodes

我有点(城市)数组,我正在寻找如何找到 10 个最近的点并将它们连接起来创建图表的最佳方法。每个点必须正好有 10 个连接。

点类别:

public class City 
{
    int key;
    public int population;
    Point position;

    City(int key, int population, Point position)
    {
        this.key = key;
        this.population = population;
        this.position = position;
    }

    void setPopulation(int newPopulation)
    {
        this.population = newPopulation;
    }
}

现在我将所有点都放在一个数组中:

City[] cities = new City[3000];

所有点都有坐标(所有坐标都是五的倍数,因为我必须确定每个点都有距离超过 5(公里)的最近点。

所有城市都是随机生成的,因此第一个城市可以位于左上角,数组中的第二个城市可以位于右下角。

这就是我绘制所有点时的样子。 map

现在我需要建议,如何找到最近的点以及如何将它们连接起来创建图表。

有什么建议吗?感谢大家的回复。

最佳答案

一个相对快速的解决方案是在每个点上使用经过调整的广度优先搜索,并与其遇到的前 10 个点建立连接。

关于java - 连接图中最近点的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728721/

相关文章:

c - 访问存储在链表中的结构的属性

javascript - 从 JSP 更新 MySQl 数据库

java - 用于访问当前登录用户对象的 ACEGI 标记

java - 如何在 Android 的 SQLite 中查看 db.delete 生成的查询

c++ - OpenCV - 手骨架节点

algorithm - 用于网络连接检查的位图有什么替代方法?

java - Jsoup:如何在迭代期间将 HTML 类组合到产品记录中

java - Hazelcast 中的未知日志跟踪

c - 需要帮助理解二叉搜索树中的父节点

java - java链接集实现