簡體   English   中英

連接圖中最近點的最佳方法

[英]Best way to connect nearest points in graph

我有一組點(城市),並且我正在尋找找到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的倍數,因為我必須確保每個點的最近點都超過5(公里)。

並且所有城市都是隨機生成的,因此第一個城市可以在左上角,而第二個城市可以在右下角。

這就是我繪制所有點時的外觀。 地圖

現在,我需要一些建議,如何找到最近的點以及如何將它們連接起來以創建圖形。

有什么建議嗎? 多謝所有回覆。

相對較快的解決方案是在每個點上使用經過調整的廣度優先搜索,並將其連接到遇到的前10個點。

一種非常簡單的方法是為此使用一個庫,例如JSI (請參見最近的N ),並且可以確保它的速度很快(實際上, jsi是針對空間查詢優化的RTree實現)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM