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 

  • 相关阅读:
    一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》
    图灵生日会——纪念阿兰图灵诞辰100周年及图灵公司七周年线下交流会
    跟着图灵听课去!(六月)
    “电梯演讲”最精炼、贴切的语言
    送你一把开启演讲之路的钥匙——《演讲的艺术》
    翻译是一份严谨的工作——关于HTTP中文翻译的讨论
    浪潮之巅作者吴军推荐序——《推荐系统实践》
    如何到达永生?揭示科学之美
    软件行业大牛告诉你何谓成功?
    C#线程系列讲座(3):线程池和文件下载服务器
  • 原文地址:https://www.cnblogs.com/hoodlum1980/p/1588334.html
Copyright © 2011-2022 走看看