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; /*最短路径*/ } } } } }
查看全文
相关阅读:
TCP和UDP的最完整的区别
cluster模块实现多进程-让我的代理服务速度飞起来了
redis多实例运行
Nodejs实现代理服务器配置
java统计程序运行的时间
spring boot配置写法
Redis: OOM command not allowed when used memory > ‘maxmemory
最新版postgresql+pgboucer安装
spring boot 数据库连接池配置
Spring BOOT PERFORMANCE
原文地址:https://www.cnblogs.com/windmissing/p/2559881.html
最新文章
Apache错误:(20014)Internal error: Error retrieving pid file logs/httpd.pid
02: 高并发架构
06: zabbix常见面试题
04: redis集群
04: gitlab安装与使用
09: mysql基础面试题
03: redis高级
01: jenkins简介与安装
05:docker于CI/CD常见面试题
03: saltstack和ansible的区别和原理
热门文章
02:Redis常见面试题
TCP的三次握手和四次挥手图解
关于python的GIL全局解释器锁的简单理解
搭建简易的WebServer(基于pyhton实现简易Web框架 使用socket套接字)
Python中生成器generator和迭代器Iterator的使用方法
闭包和装饰器,两者关系以及装饰器工厂的使用
用python批量向数据库(MySQL)中导入数据
使用python简单连接并操作数据库
SQL查询语句的进阶使用
MySQL数据库的基本使用简单易懂
Copyright © 2011-2022 走看看