public static void prim(int n,float [][]c){ float []lowcost = new float[n+1]; int []closest = new int[n+1]; boolean []s = new boolen[n+1]; s[1] = true; for (int i = 2; i <= n; i++) { lowcost = c[1][i]; closest[i] = 1; s[i] = false; } for (int i=1; i < n; i++) { float min = Float.MAX_VALUE; int j = i; for (int k = 2; k <= n; k++) { if ((lowcost[k] < min)&&(!s[k])) { min = lowcost[k]; j = k; } } System.out.println(j+", "+closest[j]); s[j] = true; for (int k = 2; k <= n; k++) { if ((c[j][k]<lowcost[k])&&(!s[k])) { lowcost[k] = c[j][k]; closest[k] = j; } } }}

评论