Учитывая список 2d точек, найдите точку, ближайшую ко всем остальным точкам

Input: list of 2d points (x,y) where x and y are integers.

Distance: distance is defined as the Manhattan distance. 
    ie:
    def dist(p1,p2) 
         return abs(p1.x-p2.x) + abs(p1.y - p2.y)

Что такое эффективный алгоритм для нахождения точки, наиболее близкой ко всем остальным точкам.

Я могу думать только о решении грубой силы O (n ^ 2):

minDist=inf
bestPoint = null
for p1 in points:
    dist = 0
    for p2 in points:
        dist+=distance(p1,p2)
    minDist = min(dist,minDist)
    bestPoint = argmin(p1, bestPoint)

в основном посмотрите на каждую пару точек.

Ответы на вопрос(3)

Ваш ответ на вопрос