Estoy buscando el algoritmo que localice eficazmente a la "Persona más solitaria del planeta", donde "más solitaria" se define como:
Distancia mínima máxima a otra persona, es decir, la persona para la que la otra persona más cercana está más lejos.
Supongamos que se introduce una lista (ciertamente milagrosa) de la latitud/longitud exacta de cada persona en la Tierra en un momento determinado.
También toma como proporcionada una función d(p1, p2) que devuelve la distancia en la superficie de la tierra entre p1 y p2-- Sé que esto no es trivial, pero es "sólo geometría esférica" y no la parte importante (para mí) de la pregunta.
¿Cuál es la forma más eficaz de encontrar a la persona más solitaria?
Ciertamente, una solución es calcular d(...) para cada par de personas en el globo, luego ordenar la lista de distancias de cada persona en orden ascendente, tomar el primer elemento de cada lista y ordenarlos en orden descendente y tomar el mayor. Pero eso implica n*(n-1) invocaciones de d(...), n ordenaciones de n-1 elementos y una última ordenación de n elementos. La última vez que lo comprobé, n en este caso está en algún lugar al norte de seis mil millones, ¿verdad? ¿Así que podemos hacerlo mejor?