[MIT6.006] 16. Dijkstra
2024-10-09 16:49:24
先回顾下上节课的内容:
下面来看一个定理:对于所有的点来说,放松操作总是满足 d[v] ≥ δ(s, v)。即点s到点v的最短路径总是小于或等于当前点d的路径权重。证明如下:
在正是进入复杂的图前,先看个简单的有向非循环图DAG(Directed Acyclic Graphs),内无负循环。下图是讲DAG如何找最短路径:
如果有循环且无负权重边呢?可以使用Dijkstra算法,具体如下:
由于Dijkstra算法有三个主要操作:插入点的优先队列,抽取最小优先值,减键操作。所有最后Dijkstra的时间复杂度可约为θ(v2)。如果用BInary min-heap,extract-min是θ(lgv),decrease-key是θ(lgv),最后为θ(lgv+Elgv)。
最新文章
- onselectstart=";return false";
- Linux学习之五——压缩与备份
- 在SourceInsight中用快捷键打开文件所在的目录
- ZOJ 3367 Counterfeit Money(最大相同子矩阵)
- vc6.0 通过ADO(udl)连接sql 2008
- git add 命令详解
- 【CSS】Intermediate2:Pseudo Classes
- mysql的日志
- C++之static_cast, dynamic_cast, const_cast
- OSX下编译安装opencv3.1.0与opencv_contrib_master
- 微信小程序wx.navigateTo层叠5次限制,特殊情况的建议
- codeforces#766 D. Mahmoud and a Dictionary (并查集)
- 转 .NET4.5之初识async与await
- vue 去哪网项目 学习笔记(一)
- mysql 问题:连不上
- github咋用昂
- Github笔记(1)
- Ng第十三课:聚类(Clustering)
- 2.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——列表
- 360加固保的dex脱壳方法
热门文章
- javascript 数据类型判断总结
- .net 手动建DataTable 获取DataTable列名 修改DataTable 列的顺序
- nginx优化:worker_processes/worker_connections/worker_rlimit_nofile
- 分布式事务说的的2PC、3PC、TCC是啥
- 报错 source-1.6 中不支持 diamond运算符
- app反编译遇到360加固,傻瓜式脱壳
- SpringBoot整合Apache-CXF实践
- 使用Volley获取验证码
- LruCache缓存bitmap(二)
- Promise 配合 axios 使用