iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java实现Floyd算法的示例
  • 342
分享到

java实现Floyd算法的示例

2023-05-30 17:05:39 342人浏览 独家记忆
摘要

这篇文章给大家分享的是有关java实现Floyd算法的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Floyd算法:用于多源最短路径的求解,算出来的是所有的节点到其余各节点之间的最短距离。该算法的思路是:首先

这篇文章给大家分享的是有关java实现Floyd算法的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Floyd算法:用于多源最短路径的求解,算出来的是所有的节点到其余各节点之间的最短距离。

该算法的思路是:首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值。d[i][j]表示从i点到j点的距离。第k次更新时,判断d[i][k]+d[k][j]与d[i][j]的大小,如果前者小,则更新这个值,否则不变。

给一个例子:

java实现Floyd算法的示例

具体的floyd实现算法如下[java] view plain copy

package com.blyang;  public class Floyd {      int[][] Matrix;   char[] nodes;      private final int INF = Integer.MAX_VALUE;      public Floyd(char[] Nodes, int[][] Matrix){     this.Nodes = Nodes;     this.Matrix = Matrix;   }      public void floyd(){          int[][] distance = new int[Nodes.length][Nodes.length];          // 初始化距离矩阵     for(int i=0; i<Nodes.length; i++){       for(int j=0; j<Nodes.length; j++){         distance[i][j] = Matrix[i][j];       }     }          //循环更新矩阵的值     for(int k=0; k<Nodes.length; k++){       for(int i=0; i<Nodes.length; i++){         for(int j=0; j<Nodes.length; j++){           int temp = (distance[i][k] == INF || distance[k][j] == INF) ? INF : distance[i][k] + distance[k][j];           if(distance[i][j] > temp){             distance[i][j] = temp;           }         }       }     }          // 打印floyd最短路径的结果     System.out.printf("floyd: \n");     for (int i = 0; i < Nodes.length; i++) {       for (int j = 0; j < Nodes.length; j++)         System.out.printf("%12d ", distance[i][j]);       System.out.printf("\n");     }   } }

在实现之后,针对上图的点和权值,给定一个测试

package com.blyang;  public class Main {        public static void main(String[] args) {     int INF = Integer.MAX_VALUE;          char[] Nodes = {'0', '1', '2', '3'};     int matrix[][] = {                 {  0,  1,  2,  1},       { INF,  0, INF, INF},       { INF,  3,  0,  1},       { INF,  1,  1,  0},      };            int[] dist = new int[Nodes.length];        Floyd floyd = new Floyd(Nodes, matrix);     floyd.floyd();    }    }

感谢各位的阅读!关于“java实现Floyd算法的示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: java实现Floyd算法的示例

本文链接: https://www.lsjlt.com/news/219877.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java实现Floyd算法的示例
    这篇文章给大家分享的是有关java实现Floyd算法的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Floyd算法:用于多源最短路径的求解,算出来的是所有的节点到其余各节点之间的最短距离。该算法的思路是:首先...
    99+
    2023-05-30
  • Java实现Floyd算法的示例代码
    目录一 问题描述二 代码三 实现一 问题描述 求节点0到节点2的最短路径。 二 代码 package graph.floyd; ...
    99+
    2024-04-02
  • Java如何实现Floyd算法
    本篇内容主要讲解“Java如何实现Floyd算法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现Floyd算法”吧!一 问题描述求节点0到节点2的最短路径。二 ...
    99+
    2023-07-02
  • Java实现Floyd算法求最短路径
    本文实例为大家分享了Java实现Floyd算法求最短路径的具体代码,供大家参考,具体内容如下import java.io.FileInputStream; import java.io.FileNotFoundException; impo...
    99+
    2023-05-30
  • Java实现Dijkstra算法的示例代码
    目录一 问题描述二 实现三 测试一 问题描述 小明为位置1,求他到其他各顶点的距离。 二 实现 package graph.dij...
    99+
    2024-04-02
  • Java实现Kruskal算法的示例代码
    目录介绍一、构建后的图二、代码三、测试介绍 构造最小生成树还有一种算法,即 Kruskal 算法:设图 G=(V,E)是无向连通带权图,V={1,2,...n};设最小生成树 T=(...
    99+
    2024-04-02
  • Java实现抽奖算法的示例代码
    目录一、题目描述二、解题思路三、代码详解四、优化抽奖算法解题思路代码详解一、题目描述 题目: 小虚竹为了给粉丝送福利,决定在参与学习打卡活动的粉丝中抽一位幸运粉丝,送份小礼物。为了公...
    99+
    2024-04-02
  • java实现的统计字符算法示例
    本文实例讲述了java实现的统计字符算法。分享给大家供大家参考,具体如下:统计字符:概述:给定字符串,将它们进行分类,分别的去统计它们的个数及其字符分类的有:字母 数字 中文 空格 等等算法思路分析:分别统计即可:下面给出代码:(代码仅供参...
    99+
    2023-05-31
    java 统计 算法
  • Java实现雪花算法的示例代码
    一、介绍 SnowFlow算法是Twitter推出的分布式id生成算法,主要核心思想就是利用64bit的long类型的数字作为全局的id。在分布式系统中经常应用到,并且,在id中加入...
    99+
    2024-04-02
  • java实现最短路径算法之Dijkstra算法的示例
    这篇文章主要介绍了java实现最短路径算法之Dijkstra算法的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、知识准备:1、表示图的数据结构用于存储图的数据结构有多...
    99+
    2023-05-31
    java dijkstra
  • java睡眠排序算法示例实现
    无聊逛论坛,发现了这张图 真是厉害啊,这排序, 既有多线程,又有排序,还有lambda表达式,但是这是C#版本,作为一个入坑的Java爱好者,当然要去试试Java版本了,废话不多说...
    99+
    2024-04-02
  • Java实现LRU缓存算法的参考示例
    目录一、什么是 LRU二、Java 实现 LRU 缓存算法一、什么是 LRU LRU(Least Recently Used,最近最少使用)是...
    99+
    2023-05-20
    Java 算法 Java LRU缓存算法 Java LUR
  • Java 实现LZ78压缩算法的示例代码
    LZ78 压缩算法的 Java 实现 1、压缩算法的实现 通过多路搜索树提高检索速度 package com.wretchant.lz78; import java.util....
    99+
    2024-04-02
  • java实现的RC4加密解密算法示例
    本文实例讲述了java实现的RC4加密解密算法。分享给大家供大家参考,具体如下:有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个Java 版本的RC4加解密算法。public static String Hlovey...
    99+
    2023-05-31
    java 加密 算法
  • Java实现基本排序算法的示例代码
    目录1. 概述2. 插入排序2.1 直接插入排序2.2 希尔排序(缩小增量排序) 3. 选择排序3.1 直接选择排序3.2 堆排序4. 交换排序4.1 冒泡排序4.2 快速...
    99+
    2024-04-02
  • java实现的各种排序算法代码示例
    折半插入排序折半插入排序是对直接插入排序的简单改进。此处介绍的折半插入,其实就是通过不断地折半来快速确定第i个元素的插入位置,这实际上是一种查找算法:折半查找。Java的Arrays类里的binarySearch()方法,就是折半查找的实现...
    99+
    2023-05-31
    java 排序 算法
  • Java实现拓扑排序算法的示例代码
    目录拓扑排序原理1.点睛2.拓扑排序3.算法步骤4.图解拓扑排序算法实现1.拓扑图2.实现代码3.测试拓扑排序原理 1.点睛 一个无环的有向图被称为有向无环图。有向无环图是描述一个工...
    99+
    2024-04-02
  • Java实现常见的排序算法的示例代码
    目录一、优化后的冒泡排序二、选择排序三、插入排序四、希尔排序五、快速排序六、随机化快速排序七、归并排序八、可处理负数的基数排序一、优化后的冒泡排序 package com.yzh.s...
    99+
    2022-11-13
    Java常见排序算法 Java排序算法 Java排序
  • Python实现贪心算法的示例
    目录一、贪心算法简介二、解决思路1.同学导师给的思路2.问题分解三、算法代码实现四、算法测试结果五、算法复杂性分析今天一个研究生同学问我一个问题,问题如下: 超市有m个顾客要结账,每...
    99+
    2024-04-02
  • Java简单实现约瑟夫环算法示例
    本文实例讲述了Java简单实现约瑟夫环算法。分享给大家供大家参考,具体如下:1.算法背景:罗马人攻占了乔塔帕特,41人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家josephus和他的一个朋友。剩余的39个人为了表示不向罗马人屈...
    99+
    2023-05-31
    java 约瑟夫环 算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作