Это самое быстрое решение:
double dx12=x1-x2;
double dy12=y1-y2;
double dx13=x1-x3;
double dy13=y1-y3;
double r12sq=dx12*dx12+dy12*dy12;
double r13sq=dx13*dx13+dy13*dy13;
int minR= r12sq>r13sq ? Math.sqrt(r13sq) : Math.sqrt(r12sq);
вам нужно взять только один sqrt - этот самый короткий путь.
Нормализация некоторой фиксированной константой для двойного не имеет смысла.
Если вы используете целые числа вместо двойных, нормализация и центрирование координат по некоторой фиксированной константе может быть полезно для одних расстояний и плохо для других. Например, если вы делите на 1000, это хорошо для координат, которые имеют различия в несколько миллиардов, но для различий в несколько сотен его эффект будет убийственным. Таким образом, вы можете оценить полезный коэффициент нормализации только после того, как у вас есть среда dx и dy. Давайте вам понадобится 4 цифры для работы
int dx12=x1-x2;
int dy12=y1-y2;
int dx13=x1-x3;
int dy13=y1-y3;
int d=(abs(dx12) +abs(dx13) + abs(dy12) + abs(dy13));
int coeff = d/10000;
if(coeff<1) coeff=1;
int dx12=dx12/coeff;
int dy12=dy12/coeff;
int dx13=dx13/coeff;
int dy13=dy13/coeff;
int r12sq=dx12*dx12+dy12*dy12;
int r13sq=dx13*dx13+dy13*dy13;
int minR= r12sq>r13sq ? Math.sqrt(r13sq) : Math.sqrt(r12sq);
Здесь вы можете умножить эти переменные int без переполнения.