g | x | w | all
Bytes Lang Time Link
022K ngn/k240609T102523Zakamayu
013vemf240609T231857Ztaswelll
109Google Sheets240608T081732Zdoubleun
025Charcoal240607T214811ZNeil
072Python240607T214556Zcorvus_1
090JavaScript ES7240607T162457ZArnauld
026APL+WIN240607T135231ZGraham

K (ngn/k), \$O(N^2)\$, 22 bytes

A function that takes \$P\$ and \$T\$ as its first, and second argument, respectively.

{x.*>&/'+.'i*i:x-\:+y}
               x-\:+y     1. coordinate diff between (p,t) in PxT 
        +.'i*i            2. squared distance between (p,t) in PxT
     &/'                  3. minimal distance to all t in T for each p in P
   *>                     4. index of the most isolated p in P
 x.                       5. the most isolated p in P

Part 1,2,3 all use \$O(N^2)\$, part 4 uses \$O(N\log N)\$ and part 5 is \$O(1)\$. Therefore the overall time complexity is \$O(N^2)\$.

Try it online!

vemf, 13 bytes, O(n²)

Boring quadratic solution as a function that takes two lists of vectors. Could maybe be shorter with complex numbers?

├╛│╘│-╧¢ñ>@╓@
 ╛      ñ       ' Minimum for each pair in P,
  │╘            ' For each pair at T
    │-╧¢        ' distance of the difference
         >@     ' Index of maximum
├          ╓@   ' Find at T

Google Sheets, \$O(n^2+)\$, 109 bytes

let(d,map(x,y,lambda(x,y,min(map(z,t,lambda(z,t,sumsq(z-x,t-y)))))),index({x,y},+sort(sequence(rows(d)),d,)))

This is a named function rather than a formula. To implement it as a named function, paste the code in Data > Named functions. Points P are passed as the parameters x, y and points T are passed as z, t where each parameter is an array. To implement the function in a formula, wrap it in lambda().

screenshot

Uses the same \$O(n^2)\$ approach as others, plus sort() to find the maximum.

Ungolfed:

=let( 
  Px, tocol(A2:A11, 1), 
  Py, tocol(B2:B11, 1), 
  Tx, tocol(C2:C11, 1), 
  Ty, tocol(D2:D11, 1), 
  minDistanceSquares, map(Px, Py, lambda(x, y, 
    min( 
      map(Tx, Ty, lambda(z, t, 
        sumsq(z - x, t - y) 
      )) 
    ) 
  )), 
  maxIndex, single(sort( 
    sequence(rows(minDistanceSquares)), 
    minDistanceSquares, 
    false 
  )), 
  maxDistance, sqrt(index(minDistanceSquares, maxIndex)), 
  { maxDistance, maxIndex, index({ Px, Py }, maxIndex) } 
)

Charcoal, 25 bytes, O(n²)

≔Eθ⌊EηΣEλX⁻ν§ιξ²η⭆¹§θ⌕η⌈η

Try it online! Link is to verbose version of code. Explanation:

≔Eθ⌊EηΣEλX⁻ν§ιξ²η

For each point in P, calculate the squared distance to all points in T and take the minimum.

⭆¹§θ⌕η⌈η

Output the point in P that has the maximum minimum squared distance.

Python, \$\mathcal{O}(n^2)\$, 72 bytes

lambda P,T:max(P,key=lambda p:min((p[0]-X)**2+(p[1]-Y)**2 for X,Y in T))

Using math.dist requires import math, which amounts to the same number of bytes.

Attempt This Online!

JavaScript (ES7), \$\mathcal{O}(n^2)\$, 90 bytes

Expects (P)(T).

P=>T=>P.map(m=a=>(v=Math.min(...T.map(b=>(g=n=>(a[n]-b[n])**2)(0)+g(1))))<m||(m=v,o=a))&&o

Try it online!

APL+WIN, 26 bytes

Prompts for T then P as nested vectors of points:

P[↑⍒(+/¨((P←⎕)∘.-⎕)*2)*.5]

Try it online! Thanks to Dyalog Classic