Il modo più veloce per recuperare i dati in un'area basata sulle coordinate xy?

-2

Quindi ho un insieme di dati non ordinati con le coordinate float xey come chiavi. I dati sono in un file txt. Sembra così:

x, y, dati;

x2, y2, data2;

etc

Ho bisogno di recuperare tutti i dati in un'area rettangolare specifica più volte con aree diverse ogni volta. Quale sarebbe l'algoritmo più veloce per farlo. (Sto lavorando in C #)

La mia attuale soluzione appare così:

  1. Crea un dizionario ordinato (dic1) con i valori X tasto y y
  2. Crea un dizionario ordinato (dic2) con chiave y e valori di dati
  3. Crea una lista (lista1) e aggiungi tutte le X in dic1 che sono tra max-X e min-X (in base all'area desiderata)
  4. Crea un altro elenco (elenco2) e per ogni elemento in list1, se l'elemento ha y tra max-Y e min-Y (in base all'area desiderata), quindi aggiungi all'elenco2.
  5. Elenco2 è il nostro insieme di punti nell'area di destinazione

Qualche cosa più veloce?

    
posta user2997154 26.09.2016 - 21:37
fonte

1 risposta

0

Quello che stai cercando è chiamato Indice spaziale .

Nel tuo caso, la griglia di base o quadtree dovrebbe essere sufficiente.

    
risposta data 28.09.2016 - 16:29
fonte

Leggi altre domande sui tag