Prim算法:
import java.util.Scanner;
/*最小生成树Prim
适用于数组*/
public class Main {
static int n,INF=1000000;
static long[][] ch;
static long[] dis;
static boolean[] vis;
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
ch=new long[n][n];
vis=new boolean[n];
dis=new long[n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
ch[i][j]=sc.nextLong();
}
}
System.out.println(Prim());
}
private static long Prim() {
// TODO Auto-generated method stub
/*将到所有点的距离都初始为最大*/
for(int i=0;i<n;i++) {
dis[i]=INF;
}
dis[0]=0;
long ans=0;
for(int i=0;i<n;i++) {
int v=-1;
for(int j=0;j<n;j++) {
if(!vis[j]&&(v==-1||dis[j]<dis[v])) {
v=j;
}
}
vis[v]=true;
ans+=dis[v];
for(int j=0