July算法研究1
来源:互联网 发布:java while 两个条件 编辑:程序博客网 时间:2024/05/22 06:50
学习《 经典算法研究系列:二、Dijkstra 算法初探 》小结;
July算法出处:http://blog.csdn.net/v_JULY_v/archive/2010/12/24/6096981.aspx
Dijkstra算法思想:
初始条件:
(1)图G,顶点集合V,边集E;
(2)d[v]:用于存放从原点到其余各点的最短路径权重;
S:用于存放已经求得最短路径的顶点集合;
U:用于存放没有求得最短路径的顶点集合;
previous[v]=u:表示访问当前节点v的前驱访问节点是u;
算法思想:
(1)将所有顶点的最短路径权值数组初始化为infinity;同时将所有顶点的previous[]初始化为undefined;
(2)将d[s]=0;
(3)S=空集;U=V;
(4)while(U不为空)
<1>u=从U中选出: 上次新加入的节点之后,更新从这个顶点可达的节点的权值的最小值;
<2>将u加入S集合;
<3>更新以s->...->u开始到u可达节点v权值,以及将这些节点previous[v]=u;
核心:<1>简单方法;二叉/项堆、斐波那契堆;
<3>松弛技术relax(u,v,w);
算法:
1 function Dijkstra(G, w, s)
2 for each vertex v in V[G] // 初始化
3 d[v] := infinity
4 previous[v] := undefined
5 d[s] := 0
6 S := empty set
7 Q := set of all vertices
8 while Q is not an empty set // Dijkstra演算法主體
9 u := Extract_Min(Q)
10 S := S union {u}
11 for each edge (u,v) outgoing from u
12 if d[v] > d[u] + w(u,v) // 拓展边(u,v)
13 d[v] := d[u] + w(u,v)
14 previous[v] := u
- July算法研究1
- july的算法博客地址
- july算法课笔记
- July -- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
- July -- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
- July -- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
- July -- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
- github-july-完美洗牌算法
- MD5算法研究(1)
- md5算法研究(1)
- MD5算法研究1
- 遗传算法研究(1)
- 2013年9月第1次面试&算法讲座(主讲人:July & 曹鹏博士)
- july:微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相
- 微软算法题--采自July博客
- 【转july】一、A*搜索算法
- 【转july】二、Dijkstra 算法初探
- Adaboost 算法的原理与推导(JUly)
- AppPoolQueueLength 值过低的错误
- 扩展Ext.Component,扩展Ext中的组件
- 成大事必备9种能力、9种手段、9种心态
- linux EOF
- JQuery easyui Datagrid 分页事件
- July算法研究1
- C++ 分割字符串
- google开源了WebRTC项目(4)
- EXT 的继承 Manual:Intro:Inheritance
- asp.net VS2005 、VS2008 常用快捷键
- MVC:控制器与视图之间的值传递
- 不要做愤世嫉俗的小鸡,学会分析现状
- apache2配置优化以及性能测试小结
- 为flex工程指定运行时浏览的页面