Поиск ближайших точек по координатам - Java
Формулировка задачи:
На плоскости заданы 5 точек с координатами (x0, y0), (x1, y1) ... (x4, y4). Найти две ближайшие точки.
Мучаю-мучаю задание, ничего не приходит в голову, только бред какой-то ( Нужно создать метод, который бы проверял расстояние между точками и сравнивал его. Help please)
class Method{
public static void main(String[] args){
int n=5, m=2;
int i, j;
double distance;
int[][] a = new int[5][2];
a[0][0]=2;
a[0][1]=-3;
a[1][0]=5;
a[1][1]=0;
a[2][0]=3;
a[2][1]=3;
a[3][0]=9;
a[3][1]=-5;
a[4][0]=8;
a[4][1]=4;
for (i=0; i<n; i++){
k=i+1;
System.out.println("Koordinaty tochki " + k + ":");
for (j=0; j<m; j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println(" ");
}
for (i=0; i<n; i++)
for (j=i+1; j<m; j++)
{
distance=Math.sqrt(Math.pow((a[i][0]-a[i+1][0]), 2)+Math.pow((a[i][1]-a[i+1][1]), 2));} }
}Решение задачи: «Поиск ближайших точек по координатам»
textual
Листинг программы
static double getPointDist(Pnt a, Pnt b) {
return Math.sqrt(Math.pow((a.x-b.x), 2)+Math.pow((a.y-b.y), 2));
}
public static void main(String[] a) {
//инициализируем массив растояний
double[][] distances = new double[5];
for (int i=0; i<5; i++) distances[i] = new double[5];
Pnt[] input = new Pnt[5]; // массив хранения точек
//... ввод данных
for (int x=0; x<5; x++)
for (int y=0; y<5; y++) distances[x][y] = getPointDist(input[x], input[y]); // заполняем растояния
}