算法理解见: 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; // 记录路径
}
}
}
}

最新文章

  1. 登陆Oracle,报oracle initializationg or shutdown in progress 错误提示
  2. HTML5 Canvas彩色小球碰撞运动特效
  3. android:ems的作用
  4. /proc/sysrq-trigger该文件能做些什么事情-转载
  5. Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
  6. HTML新手向
  7. 网页中的JavaScript
  8. 10分钟学会AngularJS的数据绑定
  9. 修改weblogic11g的JDK版本
  10. COB對PCB設計的要求
  11. POC- Proof of Cocept -- 概念验证
  12. UpdatePanel局部刷新用法
  13. 8皇后-----回溯法C++编程练习
  14. session和cookie介绍以及session简单应用
  15. 如何生成CA证书
  16. 基于web的网上书城系统开发-----登录注册扩展-------验证码功能
  17. Android开发 ---xml布局元素
  18. nodejs使用案例-mysql操作
  19. Codeforces 237 div2 B. Marathon(关于精度损失的教训)
  20. [Intellij] Project Structure 配置说明

热门文章

  1. Python学习day12-函数基础(2)
  2. 04_jQuery对象初识(三)
  3. &lt;每日一题&gt;题目20:简单python练习题(11-20)
  4. Jmeter安装与配置(第一篇)
  5. 常用es6特性归纳-(一般用这些就够了)
  6. Nginx是什么?
  7. 8种nosql数据库对比
  8. windows 遍历目录下的所有文件 FindFirstFile FindNextFile
  9. leyou_06_图片上传至FastDFS
  10. 英语-汉语600句-会见:Making an Appointment/约会