floyd算法最短路径
#include<stdio.h>
int A[20][20];
int Path[20][20];
int MGraph[20][20];
int n;
int k,l;
void printPath(int u,int v)
{
if(Path[u][v]==-1)
{
printf(“输出路径\n”);
printf("%d %d\n",u,v);
}
else
{
int mid=Path[u][v];
printPath(u,mid);
printPath(mid,v);
}
}
void Floyd(int n)
{
int i,j,v;
int A[n][n];
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
A[i][j]=MGraph[i][j];
Path[i][j]=-1;
}
}
for(v=0;v<n;++v)
{
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
if(A[i][j]>A[i][v]+A[v][j])
{
A[i][j]=A[i][v]+A[v][j];
Path[i][j]=v;
}
}
}
}
printf(“矩形数组的中间节点为:\n”);
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
printf("%d “,Path[i][j]);
}
printf(”\n");
}
}
int main()
{
int q;
int a,b,c;
printf(“输入几组数据\n”);
scanf("%d",&q);
printf(“分别是:\n”);
for(int i=1;i<=q;i++)
{
scanf("%d%d%d",&a,&b,&c);
MGraph[a][b]=c;
}
printf(“矩形数组大小\n”);
scanf("%d",&n);
printf(“矩形数组为:\n”);
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
printf("%d “,MGraph[i][j]);
}
printf(”\n");
}
Floyd(n);
printf(“输入查询路径\n”);
scanf("%d%d",&k,&l);
printPath(k,l);
}
floyd算法最短路径相关推荐
- 【数据结构笔记24】单源最短路(迪克斯拉Dijkstra算法),多源最短路(弗洛伊德Floyd算法)
本次笔记内容: 7.1.1 概述 7.1.2 无权图的单源最短路 7.1.3 有权图的单源最短路 7.1.3-s 有权图的单源最短路示例 7.1.4 多源最短路算法 文章目录 最短路径问题 最短路径问 ...
- 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)
目录 一.最短路径概念 二.迪杰斯特拉(Dijkstra)算法(单源最短路径) 1.原理 2.过程 3.代码 三.弗洛伊德(Floyd)算法(多源最短路径) 1.原理 2.存储 3.遍历 4.代码 参 ...
- 图的单源最短路径,Floyd算法(数据结构c++)
这个算法结构很是简单,但是理解还是有一定的困难,一开始做的时候想不明白,跟着算法自己动手画画就知道这个算法具体是怎么回事了. 时间复杂度是O(N*3) 算法有点动态规划的意思,有两个数组,一个(dis ...
- floyd算法_最短路径的算法:Floyd算法
点击箭头处"蓝色字",关注我们哦!! 算法 最短路径的算法-Floyd算法 ● ○ ● Shortest Path Algorithm - Floyd Algorithm ● ○ ...
- 最短路径—Dijkstra算法和Floyd算法
Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Di ...
- 最短路径-Dijkstra算法与Floyd算法
最短路径-Dijkstra算法与Floyd算法 原文:https://www.cnblogs.com/smile233/p/8303673.html 一.最短路径 ①在非网图中,最短路径是指两顶点之间 ...
- 最短路径算法——Dijkstra and Floyd算法
一. 前言: 这个古老的算法应该耳熟能详了吧,但是我自从从学校出来到现在,最短路径算法都没有实际运用过,最近在一个GIS项目中总算用到了,于是乎把教材重温了下,同时查阅了网上很多的资料 ...
- 最短路径(Floyd算法)(c/c++)
如果要得到图中各个顶点之间的最短路径,方法1:可以对每一个顶点采用Dijkstra算法:方法2:可以采用Floyd算法,它是一种用来求双源点之间最短路径的算法,采用邻接矩阵来存储图 辅助结构 int ...
- 短小精悍的多源最短路径算法—Floyd算法
前言 在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径. 在单源正权值最短路径,我们会用Dijkstra ...
最新文章
- 程序员的杂想-不要只做一名程序员
- 【FJOI2015】最小覆盖双圆问题
- performance and scalability
- mxnet基础到提高(38)-自动梯度计算
- 批量获取域名解析地址socketthread
- [html] 举例说明html的修饰元素有哪些?
- 【算法大赛直播周】大赛评委分享广告技术干货,精彩不容错过!
- jq使用教程08_基于估值波动周期的择时策略
- 数据预处理—8.属性归约之主成分分析(理论及python实现)
- 短视频直播app源码——软件系统开发方案
- 数据库中间件sharding-jdbc实现数据脱敏
- 计算机信息检索 02139
- 2020第十一届11月蓝桥杯大赛软件类B组C/C++省赛题解
- 逻辑思维训练和推理思维训练
- 微信公众平台js算法逆向
- matlab 截屏为什么没有呢,录屏没有呀!什么都没有,只有截屏,原来明明有的,现在不知道为什么就突然没有了(手机华为青春版)...
- IntelliJ IDEA 新版 UI 中的项目导航改进
- axure团队合作开发原型图
- Chatgpt提升工作效率的7种用法
- Windows11安装安卓/Android子系统运行安卓应用程序详细教程