Muchas aplicaciones de citas clasifican los resultados por distancia. Eso es, estás en posición $(x, y)$ en el mapa de la Tierra y la aplicación te muestra hasta, digamos, $k$ potencial pareja. No se trata de cualquier persona, sino de la $k$ -más cercano a ti.
Si tengo un vector $v$ con $n$ pares $(x_i, y_i)$ indicando la posición de la gente, calculando la distancia desde mi posición $(x, y)$ a cada posición $(x_i, y_i)$ sería $\Theta(n)$ y seleccionando el $k$ más pequeño sería probablemente también $\Theta(n)$ (en el tiempo de ejecución, probablemente usando minicumuladores o algo parecido).
El problema es que $n$ puede ser enorme (imagina cuántos usuarios utilizan Tinder, Grindr y aplicaciones por el estilo).
Entonces, mi pregunta es, ¿cómo lo hacen tan rápido?