最小生成树的PRIM算法
来源:互联网 发布:淮南腾讯大数据 编辑:程序博客网 时间:2024/06/16 23:54
public class Prim{ /** * 最小生成树的PRIM算法 * 基本思想:假设N=(V,{E})是联通网,TE是N上的最想生成树中的变得集合。算法从U={u0}(u0属于V), * TE={}开始,重复执行下述操作:在所有的u属于U,v属于V-U的边(u,v)属于E中找到一条代价最小 * 的边(u0,v0)并入集合TE,同事v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,{TE}) * 为N的Prim。 * @param graph 图 * @param start 开始节点 * @param n 图中节点数 */ public static void PRIM(double [][] graph,int start,int n){ //用于保存集合U到V-U之间的最小边和它的值,mins[i][0]值表示到该节点i边的起始节点 //值为-1表示没有到它的起始点,mins[i][1]值表示到该边的最小值, //mins[i][1]=0表示该节点已将在集合U中 double [][] mins=new double [n][2]; //初始化mins for(int i=0;i<n;i++){ if(i==start){ mins[i][0]=-1; mins[i][1]=0; }else if( graph[start][i]!=-1){//说明存在(start,i)的边 mins[i][0]=start; mins[i][1]= graph[start][i]; }else{ mins[i][0]=-1; mins[i][1]=Double.MAX_VALUE; } } for(int i=0;i<n-1;i++){ int minV = -1; double minW=Double.MAX_VALUE; for(int j=0;j<n;j++){ //找到mins中最小值 if(mins[j][1]!=0&&minW>mins[j][1]){ minW=mins[j][1]; minV=j; } } mins[minV][1]=0; System.out.println("Prim的第"+i+"条最小边=<"+(int)(mins[minV][0]+1)+","+(minV+1)+">,权重="+minW); for(int j=0;j<n;j++){//更新mins数组 if(mins[j][1]!=0){ if( graph[minV][j]!=-1&& graph[minV][j]<mins[j][1]){ mins[j][0]=minV; mins[j][1]= graph[minV][j]; } } } } } public static void main(String [] args){ double [][] tree={ {-1, 2.0, 4.2, 6.7}, {2.0 ,-1,-1, 10.0}, {4.2,-1, -1, 4.0}, {6.7,10.0,4.0,-1} }; Prim.PRIM(tree, 0, 4); } }
0 0
- Prim 算法生成的最小生成树
- 最小生成树的prim算法代码
- 最小生成树的prim算法实现
- 构造最小生成树的 prim 算法
- 最小生成树的Prim算法
- 图的最小生成树(prim算法)
- 最小生成树的prim算法
- 最小生成树的prim算法
- JAVA的最小生成树(prim)算法
- 最小生成树的prim算法实现
- 最小生成树的prim算法
- 最小生成树的Prim算法
- 最小生成树的Prim算法笔记
- 求最小生成树的Prim算法
- 最小生成树的prim算法
- 构建最小生成树的prim算法
- 求最小生成树的prim算法
- 图的最小生成树---Prim算法
- 回溯法解决迷宫问题
- Android_UI: EditText
- Win7通过Anaconda3中安装Tensorflow
- JS的基本数据结构实现---栈和队列
- android使用友盟推送注册失败获取不到token accs bindapp error!
- 最小生成树的PRIM算法
- Java Core 第9版 读书笔记(OOP) Part2
- grade中在线添加依赖无效不下载的问题和.MainActivity did not call through to super.onCreate()
- 《鸟哥的Linux学习:基础篇》第六章:Linux文件和=目录管理
- 9.变异算法
- 二分法查找JAVA实现
- JDBC 工具类
- 五.memcached内存管理机制
- 代码篇——————windows后门代码