Nel mio esempio forzato, ho una griglia rettangolare di nodi, dove ogni nodo è vuoto, di Tipo 1 o di Tipo 2. Tutti i nodi sono diretti agli otto nodi attorno a loro (orizzontale, verticale, diagonale). Per ognuno dei nodi di Tipo 1, voglio trovare la distanza dal nodo più vicino di Tipo 2. Per tutti i punti, le loro posizioni (x, y) sulla griglia sono note.
L'approccio ingenuo a cui riesco a pensare è qualcosa del genere (in pseudocodice):
for p1 ∈ Type1Points
min = ∞
for p2 ∈ Type2Points
possibility = max(abs(p1.x-p2.x), abs(p1.y-p2.y))
if possibility < min
min = possibility
output min
Sembra che funzioni in O(|Type1Points|*|Type2Points|)
(dove |a|
denota la dimensione dell'insieme di punti)
Tuttavia, mi chiedo se ci sono approcci ancora più veloci per risolvere questo problema.