dijkstra属于什么算法,dijkstra算法简单理解

  dijkstra属于什么算法,dijkstra算法简单理解

  说明

  1.Dijkstra算法是一种经典的最短路径算法,是数据结构、图论、运筹学等基础教学算法。

  有意思的是,Dijkstra算法通常用贪婪方法描述,而在运筹学中Dijkstra算法被视为动态规划。

  2.Dijkstra算法从起点出发,采用贪心法。

  每次遍历一个离起点最近且未到达的相邻顶点,逐层展开直至终点。

  Dijkstra算法求解加权最短路径的最优解,时间复杂度为O ^ 2。当边数远小于N 2时,复杂度可以降低,以堆结构的形式可以降低到o `(m ^ N)log(N)。

  Dijkstar算法不能处理负权边,这是由贪婪方法的选择规则决定的。

  实例

  defdijstra(调整,src,dst,n):

  距离=[Inf]*n

  dist[src]=0

  Book=[0]*n#记录确定的顶点。

  #每次都找到从起点到那个点的最短路径

  u=src

  For_inrange(n-1):#寻找n-1次

  Book[u]=1#已经确定

  #更新距离并记录距离最小的节点

  next_u,minVal=None,float(inf )

  对于温兰奇(北):#w

  adj .形容词,形容词

  Ifw==Inf:# #节点U和v之间没有边。

  继续

  如果book[v]and dist[u]wdist[v]: #判断节点是否已经确定,

  距离,距离

  minVal:

  next_u,minVal=v,dist[v]

  #开始下一轮遍历

  u=next_u

  打印(分发)

  Returndist[dst]以上是Python Dijkstra算法的介绍。希望对你有帮助。更多python学习方向:Python基础课程

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: