dijkstra算法 模板
2024-08-25 00:38:04
算法理解见: https://www.bilibili.com/video/av18586085/?p=83
模板:
#define INF 1000000000 int N;
int dist[101],g[101][101];
int vis[101];
int path[101]; // path[i]表示在最短路径中,i的上一个点 void init() // 初始化
{
for(int i = 1; i <= N; ++i) {
for(int j = 1; j <= N; ++j)
{
if(i == j)
g[i][j] = 0;
else
g[i][j] = INF;
}
}
} void dijkstra(int start)
{
for(int i=1;i<=N;i++)
{
dist[i]=INF;
vis[i] = 0;
// path[i] = -1;
}
dist[start] = 0; while(1)
{
int mark=-1,mindis=INF;
for(int i=1;i<=N;i++)
{
if(!vis[i]&&dist[i]<mindis)
{
mindis=dist[i];
mark=i;
}
}
if(mark == -1) // 找不到未收录的节点,则说明算法结束,退出
break;
vis[mark]=1; for(int i=1;i<=N;i++)
{
if(!vis[i])
{
dist[i]=min(dist[i],dist[mark]+g[mark][i]);
// path[i] = mark; // 记录路径
}
}
}
}
最新文章
- 登陆Oracle,报oracle initializationg or shutdown in progress 错误提示
- HTML5 Canvas彩色小球碰撞运动特效
- android:ems的作用
- /proc/sysrq-trigger该文件能做些什么事情-转载
- Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
- HTML新手向
- 网页中的JavaScript
- 10分钟学会AngularJS的数据绑定
- 修改weblogic11g的JDK版本
- COB對PCB設計的要求
- POC- Proof of Cocept -- 概念验证
- UpdatePanel局部刷新用法
- 8皇后-----回溯法C++编程练习
- session和cookie介绍以及session简单应用
- 如何生成CA证书
- 基于web的网上书城系统开发-----登录注册扩展-------验证码功能
- Android开发 ---xml布局元素
- nodejs使用案例-mysql操作
- Codeforces 237 div2 B. Marathon(关于精度损失的教训)
- [Intellij] Project Structure 配置说明
热门文章
- Python学习day12-函数基础(2)
- 04_jQuery对象初识(三)
- <;每日一题>;题目20:简单python练习题(11-20)
- Jmeter安装与配置(第一篇)
- 常用es6特性归纳-(一般用这些就够了)
- Nginx是什么?
- 8种nosql数据库对比
- windows 遍历目录下的所有文件 FindFirstFile FindNextFile
- leyou_06_图片上传至FastDFS
- 英语-汉语600句-会见:Making an Appointment/约会