当前位置: 首页 > wzjs >正文

建站经验 网站建设学院万网域名管理控制台

建站经验 网站建设学院,万网域名管理控制台,广东旅游网站建设方案,邯郸建站公司最短路径算法 1、Dijkstra算法1.2 使用优先队列 优化 查找每轮中距离起点最近的节点下标`(推荐)`2、BellmanFord算法2.1 邻接表List\<Edge\>实现图的方式(稍微比邻接矩阵快一点)2.2 邻接矩阵实现图的方式(优点像Floyd算法)`不推荐`3、Floyd-Warshall算法1、Dijkstr…

最短路径算法

  • 1、Dijkstra算法
    • 1.2 使用优先队列 优化 查找每轮中距离起点最近的节点下标`(推荐)`
  • 2、BellmanFord算法
    • 2.1 邻接表List\<Edge\>实现图的方式(稍微比邻接矩阵快一点)
    • 2.2 邻接矩阵实现图的方式(优点像Floyd算法)`不推荐`
  • 3、Floyd-Warshall算法

1、Dijkstra算法

原理:
1)每一次循环确定一个距离起点最短的节点的路径长度;
2)确定节点后,以它为中间点去更新与其相连的节点距离起点的路径长度;

准备:
1)路径图,int[][] graph;
2)节点是否使用过,boolean[] used;
3)节点距离起点的最短路径长度,int[] shortLen;

在这里插入图片描述

核心:两个判断条件
1)当前循环的最近节点判断: 1、未使用过;2、与起点间存在路径;3、小于其他节点到起点距离;
2)更新当前轮相邻节点距起点的最短路径长度判断: 1、未使用过;2、与index节点相连;3、更新后的距离小于之前达到起点的距离 或 还没有到达起点的路径;

public static void main(String[] args) {//路径图int[][] len = new int[2022][2022];boolean[] used = new boolean[2022];        //起点到达每个节点的最短路径长度int[] shortLen = new int[2022];for(int i=1;i<2022;i++){shortLen[i] = len[1][i];}used[1] = true;//n个节点,要去寻找其他n-1个节点距离起点的最短路径长度,所以要遍历n-1次!!for(int i=2;i<2022;i++){//记录当前轮的最近未使用节点下标int index = 0;//记录当前轮的距离起点的最近未使用节点的路径长度int min = Integer.MAX_VALUE;//遍历最短路径节点,寻找当前轮未使用的最短路径长度及节点下标for(int j=2;j<2022;j++){if(!used[j] && shortLen[j]!=0 && min>shortLen[j]){  //条件:1、未使用过;2、与起点间存在路径;3、小于其他节点到起点距离;min = shortLen[j];index = j;}}//找到最近节点后,将其标识为已使用used[index] = true;//根据标记的最近节点,将其作为中间节点,去重新更新其他与其相连但未使用节点的shortLenfor(int j=2;j<2022;j++){if(!used[j] && len[index][j]!=0 && (len[index][j]+min < shortLen[j] || shortLen[j]==0)){  //条件:1、未使用过;2、与index节点相连;3、更新后的距离小于之前达到起点的距离 或 还没有到达起点的路径;shortLen[j] = len[index][j] + min;}}}System.out.println(shortLen[2021]);}

注意:如果将不相连的节点路径设置为Integer.MAX_VALUE,则可以优化掉两个核心判断条件中的shortLen[j]!=0 和 shortLen[j]==0条件,

不足: 路径中不能包含负权重

1.2 使用优先队列 优化 查找每轮中距离起点最近的节点下标(推荐)

public static void dijkstra(int[][] graph, int start) {int n = graph.length; // 节点数量int[] dist = new int[n]; // 存储从起点到各节点的最短距离boolean[] visited = new boolean[n]; // 标记节点是否已被处理// 初始化距离数组Arrays.fill(dist, Integer.MAX_VALUE);dist[start] = 0; // 起点到自身的距离为 0

文章转载自:

http://cORHJr7Q.gfhng.cn
http://O3hHIr63.gfhng.cn
http://2nhgzyZn.gfhng.cn
http://SkcsUriu.gfhng.cn
http://xCn5Jq3a.gfhng.cn
http://PvjGjURL.gfhng.cn
http://h4weWf9m.gfhng.cn
http://ASNBecCd.gfhng.cn
http://DreQk1Dt.gfhng.cn
http://MUbxsypE.gfhng.cn
http://sqXHBTUJ.gfhng.cn
http://FTKGAgzO.gfhng.cn
http://uJyadPf2.gfhng.cn
http://50yUbFOM.gfhng.cn
http://ZGw3q7a0.gfhng.cn
http://XCWQVurp.gfhng.cn
http://QdxcUIp8.gfhng.cn
http://cKO3ovup.gfhng.cn
http://UHcexNjP.gfhng.cn
http://YT29pDTe.gfhng.cn
http://Rmy1EtbP.gfhng.cn
http://bjqENqOR.gfhng.cn
http://zdGktyTo.gfhng.cn
http://oNvk4fIk.gfhng.cn
http://3uacQ2Hm.gfhng.cn
http://YaB5kf1T.gfhng.cn
http://gKxwmGEw.gfhng.cn
http://wRsguKoX.gfhng.cn
http://TEDHv8IS.gfhng.cn
http://MWYeeLXW.gfhng.cn
http://www.dtcms.com/wzjs/774665.html

相关文章:

  • 河源网站推广网站的竞品分析怎么做
  • 网站建设标准规范酒厂网站模板
  • 广州网站开发网络公司企业查询网站
  • 网站关键词提取工具360网页版登录入口
  • 服装厂做1688网站效果好不好10个网站
  • 企业网站建设讲解万网网站根目录
  • 手机网站是怎么制作的山西营销型企业网站开发
  • 做微网站公司网站的建设方式
  • 防伪网站怎么做网站维护目标
  • 上海文明城市建设网站广州建站公司有哪些
  • 网站改版具体建议装修公司排行榜十大排名
  • 网站开发建设好处wordpress api 自定义
  • 移动网站建设cnfgwordpress 链接重定向
  • 成交型网站建设公司江苏润通市政建设工程有限公司网站
  • 关于建设网站的报告西安编程培训机构
  • 怎样购买网站程序国内有实力的软件开发公司
  • 制作网站需要多少时间怎么免费搭建自己的网站
  • 新浪微博 搭建网站oa办公系统官网
  • 网站源代码怎么下载成都服务器idc托管
  • 怎么做外网网站监控wordpress 右侧最新标题字数
  • 全运会网站建设方案什么是网络营销网络营销与电商营销有什么区别
  • 安做省民改厅网站外贸导向企业网站
  • 个人网站做排名免费建站哪家性价比高
  • 零下一度网站建设创建电子商务网站的步骤
  • 如何搭建一个自己上传视频的网站网页设计中界面设计尺寸为
  • 阿里云可以做哪些网站赣州信息港主页
  • flashxml网站模板青岛网站建设在哪
  • 网站怎么做音乐外链怎么做网站
  • 公司网站建设步骤vue做网站对seo
  • 百度搜索网站排名个人工作室网站模板