最短路径算法的调研报告
问:如何理解最短路算法?
- 答:v1到v2:10为最短路径;
v1到v3:7为最短路径;
v1到v4:8为最短路径;
v1到v5:v1-> v2 -> v5 =10+6= 16;v1v3v5=7+9=16;v1v4v6v5=8+5+2=15; 15为最短路径;
v1到v6:v1v2v3v6=10+2+9=21;v1v3v6=7+9=16;v1v4v6=8+5=13;13为最短路径;
v1到v7:v1v2v5v7=10+6+20=36;v1v3v5v7=7+9+20=36;v1v3v6v7=7+9+30=46;
v1v4v6v7=8+5+30=42;v1v4v6v5v7=35;35为最短路径
Dijkstra:
求单源、无负权的最短路。时效性较好,时间复杂度为O(V*V+E)。源点可达的话,O(V*lgV+E*lgV)=>O(E*lgV)。当是稀疏图的情况时,此时E=V*V/lgV,所以算法的时间复杂度可为O(V^2)。若是斐波那契芦基孝堆作优先队列陪稿的话,算法时间复杂度,锋粗则为O(V*lgV + E)。
以上内容参考:
问:"最短路径优先算法"的优缺点?
- 答:这个算法一般出现在网络穗李念中,用于路由器的路由寻址,我也只了解这方面的优缺点。猜困如果不对,LZ就别看了。
所谓最短路径,实际上说的是跳数。比如从一条路走会经过三个路由器,而从另一条路走,会经过两个路由器,那么此算法会判断2跳比3跳要短,但具体每一跳会花多长时间,经过多长路程,它不会考虑的。所以不一定算法的最短路径就是真实的最短。因为很多因素算法没有考虑,比如通信质量,网线长度……
C语言我只看过一个模拟现实的例子,大概是说公车走什么路线长度最短,那个算法扰手考虑的是路线的长短,而不是跳数,优点当然就是路线的绝对最短,缺点就是没考虑到其他现实因素,比如是否堵车(相当于网络通信质量)之类。
总之不管什么算法,考虑到的因素就是它的优点,反过来说,缺点往往就是算法忽略的因素。
补充一下,如果说的不是算法本身的优劣,而是细节的实现方面,那就是从时间复杂度和空间复杂度两个方面去考虑了,希望对LZ有用。
问:你认为工作生活中遇到的什么问题,可以用到最短路径问题?
- 答:出行问题。
该算法是一种寻找最短路径的算法,最短可以是距离最短,费用最小等。在实际生活中可以使用该算法进行调度,出行等方面。
用于解决最短路径问题的算法被称做“最短路径算法”,有做仔和戚丛时被简称作“路径算法”。最常用的路径算法有:Dijkstra算法,A*算法,SPFA算法,Bellman,Ford算法和Floyd,Warshall算法,本文主要介绍其中的三种。最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短纯盯路径。算法具体的形式包括:确定起点的最短路径问题:即已知起始结点,求最短路径的问题。确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。确定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径。
本文来源: https://www.61lw.cn/article/ac9dd391a62a39079cdb52c4.html