| Bytes | Lang | Time | Link |
|---|---|---|---|
| 022 | K ngn/k | 240609T102523Z | akamayu |
| 013 | vemf | 240609T231857Z | taswelll |
| 109 | Google Sheets | 240608T081732Z | doubleun |
| 025 | Charcoal | 240607T214811Z | Neil |
| 072 | Python | 240607T214556Z | corvus_1 |
| 090 | JavaScript ES7 | 240607T162457Z | Arnauld |
| 026 | APL+WIN | 240607T135231Z | Graham |
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)\$.
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().

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.
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
APL+WIN, 26 bytes
Prompts for T then P as nested vectors of points:
P[↑⍒(+/¨((P←⎕)∘.-⎕)*2)*.5]