Diciamo che ho diversi punti / vettori (in 2D per mantenerlo semplice, ma potrebbe essere di qualsiasi dimensione)
[x1, y1]
[x2, y2]
[x3, y3]
....
[xn, yn]
Se seleziono un punto [x', y']
, come trovo il punto più vicino ad esso?
Per un esempio più concreto / pratico, immagina che queste siano le coordinate delle case. Se ho migliaia di case nel database, mi piacerebbe trovare la casa più vicina a casa mia. O più in generale, mi piacerebbe trovare le case K più vicine a casa mia.
Un modo brute-force per farlo è quello di scorrere ogni punto e trovare la sua distanza dal punto / casa e scegliere solo il più piccolo. Ma con migliaia o addirittura milioni di punti dati non è affatto efficiente.
C'è un algoritmo più veloce? O sono bloccato cercando di controllare ogni punto uno alla volta?