java中最小生成树的实现

2023-11-13

最小生成树的实现:
import java.util.ArrayList;
import java.util.List;

public class ShortestTree {
	
	int[][]  dataMap={
			{-1,-1,10,-1,30,100},
			{-1,-1,5,-1,-1,-1},
			{-1,-1,-1,50,-1,-1},
			{-1,-1,-1,-1,-1,10},
			{-1,-1,-1,20,-1,60},
			{-1,-1,-1,-1,-1,-1},

	};
	//找寻最小生成树
	void findShortestTree(int start,int end,int n){
		int[] closedge = new int[n];//记录与当前树与可达的未被访问之间的权值
		boolean[] arrivaled = new boolean[n];//记录节点是否被访问
		List
   
   
    
     list = new ArrayList
    
    
     
     ();//记录最小生成树中依次添加的节点
		int tempMinNode;
		arrivaled[start] = true;//标记起始节点已被访问
		list.add(start);//把起始节点加入最小生成树列表中
		for (int i = 0; i < n; i++) {
			if(!arrivaled[i])
				closedge[i] = dataMap[start][i];
		}
		
		for (int i = 0; i < n; i++) {
			tempMinNode = findMinNode(closedge, arrivaled);
			System.out.println(tempMinNode);
			if(-2 == tempMinNode || -1==closedge[tempMinNode]){
				break;
			}else{
				arrivaled[tempMinNode] = true;
				list.add(tempMinNode);
				for (int j = 0; j 
     
     
      
      0){
						if(closedge[j]==-1 || closedge[j]>dataMap[tempMinNode][j]){
							closedge[j] = dataMap[tempMinNode][j];
						}
					}
				}
			}
		}
	
		System.out.println(list);
	}
	//找寻与当前生成树连接中具有最小权值的连接节点
	int findMinNode(int[] closedge,boolean[] arrived){
		int size = closedge.length,min=-2;
		for (int i = 0; i < size; i++) {
			
			if(!arrived[i]){
				if(min==-2 && closedge[i]>0)//覆盖初始节点
					min=i;
				if(-2!=min && closedge[min]>0){
					if(closedge[i]>0 && closedge[i]
      
      
     
     
    
    
   
   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中最小生成树的实现 的相关文章

随机推荐

  • 【Javascript】栈和队列的实现

    Js实现栈和队列 前言 leetcode 232 用栈实现队列 leetcode 225 用队列实现栈 前言 我们知道栈的原理是先进后出 队列的原理是先进先出 在JS中主要通过数组来实现队列和数组的功能 首先我们来看栈 入栈可以用 arr
  • jeecgboot后端java及前端vue无参数获取当前登录用户名等信息

    后端在controller中 注意 必须为带请求的接口 定时任务无法获得此信息 LoginUser loginUser LoginUser SecurityUtils getSubject getPrincipal String userI
  • uni-app搭建Android APP调试环境及兼容处理

    uni app搭建Android APP调试环境及兼容处理 1 回顾 2 利用MUMU模拟器搭建手机模拟器 3 uni API兼容处理方法 参考文献 1 回顾 之前 我在uni app环境搭建的文章中简单写了一下怎么搭建uni app环境并
  • java filereader 用法_第2章 FileReader类使用

    1 1 FileReader读数据一次读取一个字符 1 1 1 案例代码五 package com itheima 02 import java io FileReader import java io IOException 需求 从文件
  • 西瓜书学习笔记第1章(绪论)机器学习

    西瓜书学习笔记第1章 绪论 机器学习 1 1引言 1 2基本术语 1 3假设空间 1 4归纳偏好 1 5发展历程 1 6应用现状 1 1引言 机器学习是这样一门学科 它致力于研究如何通过计算的手段 利用经验来改善系统自身的性能 经验的存在形
  • 为什么RPA机器人会广泛应用于财务管理领域?

    RPA不是一个物理机器人 而是软件机器人 它的优点在于 可以根据规则自动执行任务 并减轻团队执行手动流程的负担 RPA适用于手动的 重复的 错误率高的流程 RPA机器人主要做三件事 降低成本 提高质量 改进操作控制 财务流程充满了搜索 传输
  • 做一个缓存,记录是否进入过此页面

    GuideActivity 如果不是第一次进入主页面 应做一个缓存 记录一下 如果进入过主页面 则下次不经过引导页面直接进入主页面 如果没有进入过主页面 则按正常情况下 先进入引导页面 再进入主页面 CacheUitls putBoolea
  • hadoop和hive、spark、presto、tez是什么关系

    Hadoop是一个分布式计算框架 可以在大数据集上运行分布式应用程序 它由许多组件组成 包括HDFS 分布式文件系统 和MapReduce 分布式计算引擎 Hive是一个基于Hadoop的数据仓库系统 它允许用户使用SQL语言来查询和分析大
  • 【红外DDE算法】HE算法在红外图像可视化上的应用(附源码)

    直方图均衡 HE 在红外图像可视化上的应用 附源码 1 背景需求 制冷型红外相机模拟前端使用较高数据位数进行采样 一般常用 14位 16 位 但是人眼对于灰度的感知 最多能感知 128 个灰阶 并且数据一般是以 8 的整数倍的位宽在电子系统
  • Python制作【大麦网】自动抢票程序

    Python制作 大麦网 自动抢票程序 前言 大麦网 是中国综合类现场娱乐票务营销平台 业务覆盖演唱会 话剧 音乐剧 体育赛事等领域 但是因为票数有限 还有黄牛们不能丢了饭碗 所以导致了 很多人都抢不到票 那么 今天带大家用Python来制
  • 交换机与路由器的基本工作原理

    1 广播域和冲突域 1 1冲突域 连接在同一导线上的所有工作站的集合 或者说是同一物理网段上所有节点的集合或以太网上竞争同一带宽的节点集合 这个域代表了冲突在其中发生并传播的区域 这个区域可以被认为是共享段 在OSI模型中 冲突域被看作是第
  • Spark将Dataframe数据写入Hive分区表的方案

    2021年最新版大数据面试题全面开启更新 2021年最新版大数据面试题全面开启更新 DataFrame 将数据写入hive中时 默认的是hive默认数据库 insert into没有指定数据库的参数 数据写入hive表或者hive表分区中
  • Android开发之http网络请求返回码问题集合

    HTTP状态码 HTTP Status Code 一些常见的状态码为 200 服务器成功返回网页 404 请求的网页不存在 503 服务不可用 一 1xx 临时响应 表示临时响应并需要请求者继续执行操作的状态代码 代码 说明 100 继续
  • 【golang】派生数据类型---指针 && 标识符、关键字等

    1 指针 对比C C 中的指针 go语言中的指针显得极为简洁 只是简单的获取某个空间的地址 或者 根据指针变量中的内容 获取对应存储空间的内容等操作 具体示例如下 go中使用指针需要注意的点 可以通过指针改变它所指向的内存空间中的内容 指针
  • linux删除文件后硬盘空间不释放

    查看被删除了的所有文件 lsof n grep deleted 杀死这些文件的delete进程 释放空间 lsof n grep deleted awk print 2 xargs kill 9 接着再运行lsof n data grep
  • 模糊神经网络

    参考 https wenku baidu com view 94f77a7384868762cbaed58f html https wenku baidu com view 22590c72cc17552706220818 html 1 模
  • 新唐M0 内核 FLASH操作认识和总结

    本文不对代码做详细解析 先说结论 和常见问题 结论 结论1 FLASH在操作的时候 需要先 擦除 然后在 写入 结论2 擦除需要一整块擦除 不能只擦除某几个字节 结论3 写入是可以按照字节这样写入的 但是 结论1 的存在 导致写入也整片写入
  • linux syslog函数,Linux syslog相关函数详解

    介绍 syslog是Unix系统的日志系统 可以将日志记录在本地系统中 一个完整的syslong日志包含如下信息 程序模块 严重性 时间 主机名 进程名 进程ID 正文 syslong相关函数 1 openlog 函数 调用openlog
  • 迅为IMX6ULL-从C++到QT系统移植(QT视频他来了~)

    零基础的QT视频他来了 1 主打零基础入门 手把手教学 从C 到QT系统移植 带你打通QT的任督二脉 2 独创的框架学习法 先掌握整体的QT开发流程 然后在逐一击破 3 从Windows上位机开发 到Linux界面开发 再到手机APP开发
  • java中最小生成树的实现

    最小生成树的实现 import java util ArrayList import java util List public class ShortestTree int dataMap 1 1 10 1 30 100 1 1 5 1