java实现 库鲁斯卡尔算法kruskal(算法设计与分析作业)

package package1;import java.util.Arrays;public class alg {//判断tar是否在nums中public static boolean isIn(int[] nums, int tar) {for (int n : nums) {if (tar == n) {return true;}}return false;}//  排序按照二维数组的第三个数排序public static void sortG(int[][] g) {for (int i = 0; i < g.length - 1; i++) {for (int j = 0; j < g.length - 1 - i; j++) {if (g[j][2] > g[j + 1][2]) {int[] t = g[j];g[j] = g[j + 1];g[j + 1] = t;}}}System.out.printf("---------------%s------------------\n", "排序后");for (int[] i : g) {System.out.println(Arrays.toString(i));}}public static void kruskal(int[][] n, int m) {/*** n二维数组边* m定点数*/int[] list = new int[m];int list_p = 0 ;for(int i = 0; i < n.length; i++){if(!isIn(list, n[i][0])){list[list_p] = n[i][0];list_p++;char p1 = (char) (n[i][0] + 97);char p2 = (char) (n[i][1] + 97);System.out.println((n[i][0] + 1) + "" + p1 + "<--->" + p2 + (n[i][1] + 1) + "    ->" + n[i][2]);}else if(!isIn(list, n[i][1])){list[list_p] = n[i][1];list_p++;char p1 = (char) (n[i][0] + 97);char p2 = (char) (n[i][1] + 97);System.out.println((n[i][0] + 1) + "" + p1 + "<--->" + p2 + (n[i][1] + 1) + "    ->" + n[i][2]);}if(list_p >= m - 1){break;}}}public static void main(String[] args) {int[][] n = {{1, 2, 3}, {1, 5, 6}, {1, 6, 5}, {2, 3, 1}, {2, 6, 4}, {3, 4, 6}, {3, 6, 4}, {4, 5, 8}, {4, 6, 5}, {5, 6, 2}};sortG(n);kruskal(n,6);System.out.printf("------------%s-------------\n", "图二");int[][] n1 = {{1,2,5},{1,4,6},{2,3,1},{2,4,3},{3,4,4},{3,5,6},{4,5,2}};sortG(n1);kruskal(n1,5);System.out.printf("------------%s-------------\n", "图三");int[][] n2 = {{1,2,3},{1,4,4},{1,3,5},{2,5,3},{2,6,6},{4,3,2},{4,8,5},{4,5,1},{6,5,2},{6,10,5},{7,3,4},{7,8,3},{7,11,6},{9,8,6},{9,5,4},{9,10,3},{9,12,5},{11,12,8},{11,8,7},{12,10,9}};sortG(n2);kruskal(n2,12);}
}

结果

java实现 库鲁斯卡尔算法 kruskal(算法设计与分析作业)相关推荐

  1. 生成最小树(普里姆算法与库鲁斯卡尔算法)

    普里姆算法 基本思想:以某个顶点为起点,逐步找各顶点上最小权值的边来构建最小树. 代码如下: vector<vector<int>> edges;//邻接矩阵 int N;// ...

  2. 生成树的概念,最小生成树Prim算法 Kruskal算法

    求解最小生成树可以用Prim算法 Kruskal算法

  3. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  4. 基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)

    #include <iostream> using namespace std; //约定: //1. 图是由很多节点(VERTEX)构成的, 因此图结构是由一个VERTEX的链表构成的, ...

  5. 【数据结构】最小生成树 Prim算法 Kruskal算法

    最小生成树应用场景: 假设以下场景,有一块木板,板上钉上一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样得情况,即用最少的细绳把所有的钉子连接起 ...

  6. 最小生成树 | Prim算法 Kruskal算法 |C语言

    一.Prim算法 MST收集的是顶点: 这里的dist[]是指结点V到最小生成树的最小距离: 当dist[V] = 0 时,表明结点V被收录到最小生成树中, 如果dist[W] != 0,表明结点W还 ...

  7. 最小生成树:Prim算法 /Kruskal算法(待深入复习理解)

    目录 1.各种概念和性质 2.prim算法 3.Kruskal算法 4.两种算法比较 1.各种概念和性质 无向图的生成树 最小生成树 构造最小生成树(利用MST性质) 2.prim算法 算法思想 算法 ...

  8. 最小生成树之 Prim算法 Kruskal算法

    1 描述 问题:修建一个连接各个小区与煤气供应站点之间的管道,使得造价成本最低,即构造一颗最小生成树.但是如何求解? 对应模型:树结构,生成树,最小生成树 2 prim算法实例 基本思想:在满足如下条 ...

  9. 最小生成树(库鲁斯卡尔算法)

    #include<iostream> #include<algorithm> using namespace std; #define maxSize 100 #define ...

最新文章

  1. 高并发下的redis击穿,你需要了解下布隆过滤器
  2. 在python程序中的进程操作
  3. 遭遇ORA-01200错误的原因及解决方法
  4. [转] Apache日志分析常用Shell命令
  5. 自动驾驶汽车如何解决复杂交互问题?清华联合MIT提出M2I方案
  6. 多态_python的小窝_百度空间
  7. webstorm汉化流程
  8. java笔试试题含答案_Java笔试题带答案
  9. 我的世界服务器发消息有符号,我的世界彩色字体符号
  10. react ssr方法
  11. 【预定义】C语言预定义代码(宏、条件编译等)内容介绍【最全的保姆级别教程】
  12. BI相关的内容---BI是什么,主要工作的内容有哪些?
  13. 设计一个算法,借助栈实现单链表链接顺序的逆转
  14. 小程序或者公众号授权给第三方平台流程
  15. GDAL 地图切片层级计算公式
  16. 交换机的三种端口类型
  17. 物联网数据卡系统源码——物联网的主要应用领域
  18. python数据分析推荐课程_关于大数据分析的相关课程推荐
  19. Latex数学公式转Word公式
  20. js 点击切换背景图片

热门文章

  1. java入门编程之个人通讯录管理系统
  2. 2023年天津农学院专升本专业课报名缴费时间考试安排
  3. golang常用库之-mgo.v2包、MongoDB官方go-mongo-driver包、七牛Qmgo包 | go操作mongodb、mongodb bson
  4. 倾斜摄影超大场景的三维模型的顶层合并常见的问题分析
  5. input不能输入的问题
  6. 虚拟机安装pycharm
  7. DNS这位“翻译官”是如何转换域名和IP地址的?
  8. 史上超强的鲨鱼---Megalodon 巨齿鲨
  9. Valley Blue Pasture《谷蓝尼牧场》签到可领大红包
  10. GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统