1

ポイント(都市)の配列があり、最も近い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;
    }
}

これで、すべてのポイントが 1 つの配列に含まれるようになりました。

City[] cities = new City[3000];

すべてのポイントには座標があります (すべての座標は 5 の倍数です。これは、各ポイントに 5 (km) よりも遠い最も近いポイントがあることを確認する必要があるためです)。

また、すべての都市はランダムに生成されたので、配列内の最初の都市は左上隅に、2 番目の都市は右下隅に配置できます。

それが、私がそれらを描くとき、​​すべての点を見る方法です。 地図

ここでアドバイスが必要です。最も近いポイントを見つける方法と、それらを接続してグラフを作成する方法です。

何かアドバイス?返信ありがとうございます。

4

2 に答える 2

0

比較的迅速な解決策は、各ポイントで適応された幅優先探索を使用し、最初に遭遇した 10 個のポイントに接続することです。

于 2013-11-01T14:28:34.423 に答える