2017-09-20 2 views
0

Ich habe einen großen (mehrere Millionen Zeilen) Datensatz von Vektoren (d. H. Liste < double []>) und ich muss die nächsten 1000 Vektoren zum gegebenen Vektor finden.Suche nach dem nächsten Vektor in einem großen Datensatz C#

Die naheliegende Lösung ist, die Abstände für alle von ihnen zu berechnen und dann das Array zu sortieren, aber ich bin nicht sicher, ob es der richtige Weg ist, die Größe des Ausgangsarrays zu berücksichtigen.

Vielleicht sollte ich routinemäßig entfernen die am weitesten entfernten Vektoren in den Prozess der Berechnung der Entfernungen, so wird es eine kleine Reihe von engsten Vektoren die ganze Zeit statt einer riesigen Anordnung am Ende.

Auf der anderen Seite sieht es so aus, dass ich immer noch Arrays dieser Größe ohne Speicherüberlauffehler in 64 Bit verarbeiten kann.

Was wird die kostengünstigere Lösung dieses Problems sein?

Wenn der richtige Weg ist, einen kleinen Satz während der Berechnung zu haben - was wird der richtige Weg sein?

Antwort

0

Wenn Sie diesen Datensatz in der Datenbank speichern, unterstützt das modernste DBMS Geo-Codierung und sucht nach Entfernung.

+0

Nein, ich habe eine Textdatei. – Philipp

Verwandte Themen