最短路径算法
来源:互联网 发布:qq三国js技能介绍 编辑:程序博客网 时间:2024/05/01 04:53
参考:http://zh.wikipedia.org/wiki/%E6%9C%80%E7%9F%AD%E8%B7%AF%E9%97%AE%E9%A2%98
最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:
- 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。适合使用Dijkstra算法。
- 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
- 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。
- 全局最短路径问题 - 求图中所有的最短路径。适合使用Floyd-Warshall算法。
用于解决最短路径问题的算法被称做“最短路径算法”, 有时被简称作“路径算法”。 最常用的路径算法有:
- Dijkstra算法 迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题。 求单源、无负权的最短路。
- A*算法 http://wenku.baidu.com/link?url=VZOOwZKOZ-ssLzycvR8XXwY9_r01JgAI5dF-ecnRdoqsr9y6tFgT2BlxRARpuMv20-wyKSUYX-mfVJlwYaCcqkQeIK-3BG2a9ifesF2_Rhu
- Bellman-Ford算法
- SPFA算法 (Bellman-Ford算法的改进版本)
- Floyd-Warshall算法 求多源、无负权边的最短路。用矩阵记录图。
Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点到B,所以,我们假设dist(AB)为节点A到节点B的最短路径的距离,对于每一个节点K,我们检查dist(AK) + dist(KB) < dist(AB)是否成立,如果成立,证明从A到K再到B的路径比A直接到B的路径短,我们便设置 dist(AB) = dist(AK) + dist(KB),这样一来,当我们遍历完所有节点K,dist(AB)中记录的便是A到B的最短路径的距离。
- Johnson算法
- Bi-Direction BFS算法
代码1. Dijkstra 算法 参考:http://www.wutianqi.com/?p=1890 http://2728green-rock.blog.163.com/blog/static/43636790200901211848284/
- 牛人写的算法网址:
http://blog.csdn.net/v_july_v/article/details/6181485
http://www.cnblogs.com/hxsyl/p/3270401.html
http://www.wutianqi.com/?cat=30
http://dongxicheng.org/category/structure/
http://blog.csdn.net/fengchaokobe/article/details/7521780
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 最短路径算法
- 下阶段工作计划安排
- php禁用一些危险函数
- hdu 5074
- 黄鱼车
- hdu 5073 Galaxy
- 最短路径算法
- HP大中华区总裁孙振耀退休感言
- Huffman Algorithm (ii) 计算字符权重
- Java类加载器总结
- 使用Jlink对FL2440开发板进行烧录
- 隐马尔科夫模型
- 利用注解加拦截器实现struts2的权限设置
- iOS设计模式 - (3)简单工厂模式
- 贪心算法的分数背包问题的介绍与理解1(含c源代码)