public class Agglomeritive { static double ecl[][]; static String names[]; public static void main(String[] args) { java.util.Scanner sc=new java.util.Scanner(System.in); double a[][]={{0.4,0.53},{0.22,0.38},{0.35,0.32},{0.26,0.19},{0.08,0.41},{0.45,0.30}}; names=new String[6]; for(int i=0;i<6;i++) { System.out.println("P"+i+" "+a[i][0]+" "+a[i][1]); names[i]="P"+i; } ecl=new double[6][6]; double min=9999; int m1=-99,m2=-99; for(int i=0;i<6;i++) { for(int j=0;jecl[i][j]&&ecl[i][j]!=0) { min=ecl[i][j]; m1=i; m2=j; } } System.out.println(); } System.out.println("MINIMUM="+Math.round(min * 100D) / 100D+" "); for(int t=0;t<5;t++) { System.out.println("--------Iteration "+t+"----------"); updateTable(m1,m2,min); printTable(ecl); min=9999; //int m1=-99,m2=-99; for(int i=0;iecl[i][j]&&ecl[i][j]!=0) { min=ecl[i][j]; m1=i; m2=j; } } //System.out.println(); } System.out.println("MINIMUM="+Math.round(min * 100D) / 100D+" "); } } private static void updateTable(int m1, int m2, double min) { System.out.println(names[m1]+" and "+names[m2]+ " will be merged"); names[m1]=names[m1]+names[m2]; names[m2]=null; ecl[m1][m2]=0; for(int i=0;iecl0)return ecl0; return ecl; } private static void printTable(double[][] ecl) { for(int i=0;i