zoukankan      html  css  js  c++  java
  • [临时]单源最短路径(Dijkstra算法)

      因为没有原创内容,相当于看书笔记,因此本打算发在QQZone,但因为QQ空间日志忽然服务器繁忙,大骂腾讯无奈还是把此日志临时发布在自己的博客上。

      参考资料:《计算机算法设计与分析》(第三版)。
      条件:
      (1)带权有向图 G = (V, E); 任意边的权 >= 0;

      算法:
      贪心法。体现在从源节点开始,每次从集合S外“选一个最近的节点”添加到S中,然后对dist数组做更新。

         

      参数说明:

      T:模板参数,权值类型。(计量长度的数据类型)

      int n; 图的节点数;  

      int v; 出发节点(源节点)的索引。

      T dist[];  dist[i]表示当前条件下 v 到 i 节点之间的最短距离。求解过程中这个数组随着集合S的扩充而动态变化。

      int prev[]; prev[i]表示从 v 到 i 节点之间的最短距离路径上的前一个节点。可以通过这个数组反塑获取到完整路径。

      T *c; 图的矩阵表示。c[i][j]表示边(i,j)的权。当无通路时为一个大数。 

     =========================  

          代码:

    ========================= 

     Code_Dijkstra

    =========================
          输出:
    =========================
    sizeof(bool) = 1 bytes.
    dist: 0,10,50,30,60,
    prev: 0,0,3,0,2,
    0->4 Path: 0 - 3 - 2 - 4 

  • 相关阅读:
    共望明月
    游丽都公园有感
    创业天才尼尔曼迈向成功的十四个原则
    赵娜(帮别人名字作诗)
    小幽默也有大道理:哲理幽默15则
    夜游草堂
    成功就是简单的事情重复做、重复做
    千万别入错行 15条人生建议
    听一堂课值三十九万,把它看完,定会有收获!
    VIEW:X$KCCRSControlfile Record Section directory (8.0 8.1)
  • 原文地址:https://www.cnblogs.com/hoodlum1980/p/1588334.html
Copyright © 2011-2022 走看看