zoukankan      html  css  js  c++  java
  • 最短路径分析——迪杰斯特拉算法

      数据结构中学过一次,GIS空间分析中再学一次~~~~

      迪杰斯特拉算法是一个典型的贪婪算法,每次都查找与源点距离最近的点

      张康聪教材中的一个例子:

       

      

    六个节点的阻抗矩阵

      

     

     

      已知源点为点3,要求从点3开始出发,求出点3到各点的最短路径


     

      ①在点3到点1、2、4、6路径中选择最短路径

        min(P3-1,P3-2,P3-4,P3-6)=min(53,39,25,19),选定最短的P3-6,从36最短的路径即为P3-6

      ②把点6作为stepping stone,从点6开始往下一点寻找路径,与第一步中没有选定的路径比较

        min(P3-6-5,P3-1,P3-2,P3-4)=min(32,53,39,25),选定最短的P3-4,从34最短的路径即为P3-4

      ③把点4作为stepping stone,从点4开始往下一点寻找路径

        min(P3-4-5,P3-4-1,P3-6-5,P3-1,P3-2)=min(38,83,32,53,39),选定最短的P3-6-5,从35最短的路径即为P3-6-5

      ④min(P3-4-1,P3-1,P3-2)=min(83,53,39),从32最短的路径即为P3-2

      ⑤min(P3-4-1,P3-1)=min(83,53),从31最短的路径即为P3-1


      迪杰斯特拉算法每一步都是在备选路径列表中选择最短路径

     

     

  • 相关阅读:
    最短路径的三种实现方法
    c/c++小知识
    c++ char * const p问题
    C++ typedef 四个用途
    [转]c++面向对象基础
    [转]C++中引用(&)的用法和应用实例
    表情包。
    linux基础学习
    redis缓存在项目中的使用
    关于redis
  • 原文地址:https://www.cnblogs.com/liuliang1999/p/10978421.html
Copyright © 2011-2022 走看看