最短路径用什么算法,最短路径算法总结

  最短路径用什么算法,最短路径算法总结

  说明

  1、解决任意两个节点之间的最短距离,用弗洛伊德。

  2、解决单源最短路径问题,有负边时用贝尔曼-福特公司,无负边时用迪克斯特拉。

  3、A*算法找到了相对路径,适用于大规模、高实时性的问题。

  实例

  #!/usr/bin/python3

  #编码=utf-8

  my_max=0xffff

  丹麦议会第:号

  #自身到自身为0

  d[v]=0

  第:号

  u=-1

  我的最小值=我的最大值

  forjinrange(n):

  ifvis[j]==false和d[j]my _ min :

  u,my_min=j,d[j]

  ifu==-1:

  返回

  vis=True

  forsinrange(n):

  ifvis[s]==FalseandG[u][s]!=my_maxandd[u] G[u][s]d[s]:

  d[s]=d[u] G[u][s]

  defmian():

  n,edges,v=map(int,input(请输入图的节点个数,边个数和起始点:).拆分())

  #n=3

  边数=3

  d=[my_maxfortinrange(n)]

  vis=[Falseforiinrange(n)]

  G=[]

  # G=[[我的最大,1,我的最大],[1,我的最大,3],[我的最大,3,我的最大]]

  forjinrange(n):

  g。追加([my _ maxfortinrange(n)])

  边缘:

  node1,node2,edge_node=map(int,input(请输入请输入两个节点和中间的边:).拆分())

  g[节点1][节点2]=边节点

  g[节点2][节点1]=边节点

  迪克斯特拉(v,G,d,vis,n)

  foriinrange(透镜(d)):

  打印(节点%d到节点%d的最短距离是:%d%(v,I,d[i]))

  if__name__==__main__:

  勉()以上就是大蟒最短路径算法的选择方法,希望对大家有所帮助。更多大蟒学习指路:python基础教程

  本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。

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

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