zoukankan
html css js c++ java
多源最短路径 Floyd
/* Floyd.h 时间复杂库:O(N^3) 用途: 1.判断中否联通 s[a][b] != inf -> 联通 s[a][b] == inf -> 不联通 2.两点间最短路径长度 s[a][b] != inf -> 最短路径长度 = s[a][b] s[a][b] == inf -> 不联通 3.两点间的最短路径的跳数 初始化时所有路径长度设为单位长度 s[a][b] != inf -> 跳数 = s[a][b] s[a][b] == inf -> 不联通 */ #include <iostream> using namespace std; #define MAX 100 #define inf 0x3FFFFFFF class Floyd { public: int n; //记录两点间最短路径的长度 int s[MAX][MAX]; //记录最短路径 int path[MAX][MAX]; public: Floyd(int size = MAX); void clear(); void ShortestPath(); }; Floyd::Floyd(int size):n(size) { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(i = j) s[i][j] = 0; else s[i][j] = inf; path[i][j] = j; } } } Floyd::clear() { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(i = j) s[i][j] = 0; else s[i][j] = inf; path[i][j] = j; } } } void Floyd::ShortestPath() { int i,j,k; for(k = 0; k < MAX; k++) { for(i = 0; i < MAX; i++) { for(j = 0; j < MAX; j++) { if(s[i][j] > s[i][k] + s[k][j])) { s[i][j] = s[i][k] + s[k][j]; /*最短路径值*/ path[i][j] = k; /*最短路径*/ } } } } }
查看全文
相关阅读:
element-ui 中Message 消息提示
MYSQL 常用语法格式
python 爬取必应每日图片
linux:文件权限管理
如何建立自我学习的"触发机制"?
总有那么一些人,把自己的思想强加给别人
linux 控制history命令历史记录
linux apt-get 安装与卸载命令
ubuntu16.04下 安装java8
历史与过去是一面镜子,它照到的是你现在的自己
原文地址:https://www.cnblogs.com/windmissing/p/2559881.html
最新文章
gitee初始化一个项目
如何设计一个注册中心
IDEA的使用技巧
高效利用工具进行学习
RedisTemplate-Redis的序列化方案
Redis优秀文章
Vue优秀文章
Git优秀文章
Nginx优秀文章
IDEA中Maven项目失效
热门文章
Quartz快速开发
解决less 版本过高
vue cli 创建新项目
VSCode 前端常用插件集合
vscode将less编译成css
idea中添加less自动转换css
VSCode如何快速生成HTML
vscode安装之后右键没有浏览器打开选项
vue 防抖和节流
js如何给当前日期+1(-1)
Copyright © 2011-2022 走看看