Dijkstra算法

又称迪杰斯特拉算法,是一个经典的最短路径算法,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,使用了广度优先搜索解决赋权有向图的单源最短路径问题,算法最终得到一个最短路径树。时间复杂度为O(N^2)

执行动画:

实例:

抽象步骤:

1.将起点A放入集合中,A点的权值为0,因为A->A=0。

2.与起点A相连的所有点的权值设置为A->点的距离,连接不到的设置为无穷。并且找出其中最小权值的B放入集合中(此时A->B必定为最小距离)。

3.与B点相连的所有点的权值设置为B->点的距离,并且找出其中最小权值的C点放入集合中(此时C的权值必定为其最小距离)。

4.重复步骤3,直至所有点加入集合中。便能得到所有点与A点的最短距离。

Floyd算法

全称Floyd-Warshall算法,又称佛洛依德算法,是解决任意两点间的最短路径的一种算法,但是时间复杂度比迪杰斯特拉要高,时间复杂度为O(N^3)吗,空间复杂度为O(N^2)。

简单案例:

步骤:

1.将图转化成矩阵:

2.选择V0点作为第一个中间点:

3.进行V0中间点是否能缩短另外两点间距离的判断:简而言之就是非对角线处(红箭头处)进行加法判断,<则替换。

4.对后续点进行步骤2-3相应的操作。

范例:

INF表示无穷大。

from:

http://blog.csdn.net/jerry81333/article/details/54772709

the shortest path algorithm的更多相关文章

  1. 最短路径Shortest Path algorithm

    最短路径问题: 如果从图中某一顶点(称为端点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小. (1)Dijkstra 算法 (2) Floyd 算 ...

  2. A Fast Priority Queue Implementation of the Dijkstra Shortest Path Algorithm

    http://www.codeproject.com/Articles/24816/A-Fast-Priority-Queue-Implementation-of-the-Dijkst http:// ...

  3. Method for finding shortest path to destination in traffic network using Dijkstra algorithm or Floyd-warshall algorithm

    A method is presented for finding a shortest path from a starting place to a destination place in a ...

  4. Proof for Floyd-Warshall's Shortest Path Derivation Algorithm Also Demonstrates the Hierarchical Path Construction Process

    (THIS BLOG WAS ORIGINALLY WRTITTEN IN CHINESE WITH LINK: http://www.cnblogs.com/waytofall/p/3732920. ...

  5. zoj 2760 How Many Shortest Path 最大流

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 Given a weighted directed graph ...

  6. The Shortest Path in Nya Graph

    Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...

  7. Shortest Path(思维,dfs)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  8. Shortest Path

    Shortest Path Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  9. (中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。

    Description This is a very easy problem, your task is just calculate el camino mas corto en un grafi ...

随机推荐

  1. expect简单自动交互-用于密码、命令输入

    1. 安装expect #yum -y install expect 2. 新建.exp文件,用于ssh交换机 #vi exp.exp #!/bin/expect set f [open ipfile ...

  2. Echart使用笔记

    一. registerTheme 注册主题,用于初始化实例的时候指定. Echart官网主题下载: http://echarts.baidu.com/download-theme.html 最好的办法 ...

  3. activiti-explore(activiti5.17) 替换数据库

    http://blog.csdn.net/xiangwangye66/article/details/46943301

  4. 有趣的if循环

    今天,在论坛看到一个有趣的if 循环,我感觉有不错,就分享出来 问题,列表只有6个数,为什么打印8个数?原理? q = ['a', 'b', 'c', 'd', 'e', 'f'] for i in ...

  5. react 的基础

    首先下载React 的安装包,可以到官网下载.也可以使用React Demos 已经自带 React 源码,不用另外安装,只需把这个库拷贝到硬盘中使用. (可参考http://www.ruanyife ...

  6. 中文乱码 URLEncode之后,后台获取仍是乱码问题详解

    java中获取到参数的时候,这时候默认使用的是iso8859-1进行解码的,那么就再使用URLEncode的encoe方法对其进行编码一次,编码格式使用iso8859-1,这样我们就获得最初使用utf ...

  7. Maximum Sum of Digits(CodeForces 1060B)

    Description You are given a positive integer nn. Let S(x) be sum of digits in base 10 representation ...

  8. Python-接口自动化(十)

    ddt+unnittest+excel处理测试数据(九) (十一)ddt 1.利用ddt实现数据驱动,ddt是第三方模块,在终端输入pip install ddt 进行安装 导入:from ddt i ...

  9. c# 关于Threading.ApartmentState

    今天在做一个需求 就是 客户端的注销重新登录的操作,想必大家很清楚这个逻辑应该怎么去做, 在主线程里面去调用这个注销的方法 然后关闭当前应用域,重新开一个线程 让应用域在上面执行. STA(singl ...

  10. Java互联网应用和企业级应用的区别

    企业级应用是为了满足企业日常运营所产生的IT应用,其目的是满足企业自己,对交付厂家而言,俗称2B业务:互联网应用则是面向个人用户,俗称2C业务.就个人经验,企业应用主要关注业务服务的能力,针对该企业的 ...