zoukankan      html  css  js  c++  java
  • lecture 10.23

    1. Prim's Algorithm时间复杂度:找到最小edge O(V*E)

    利用priority queue找最小edge时,O(V*logE)

    2. priority queue: 有的queue需要按照一定顺序输出,而不是queue默认的先进先出原则(FIFO)

    join: O(1)

    leave: O(N)  遍历所有找到符合条件的

    #利用heap,则join,leave均为O(logN)

    3. shortest path

    大于0;

    结果不唯一;

    可分为single-source(SSSP), all-pairs(APSP)

    4. SSSP

    pred[]记录是经由哪个点过来的

    #edge relaxation: 在dist[]里记录已知的最短cost,逐渐update

    支持算法:Dijkstra's Algorithm

    a) 将初始点的举例设为0,其他设为无穷大

    b) 将所有未确定shortest path的点放在set里面,检测从起始点出发的edges,并记录其weight

    c) 将起始点从set中删除,从起始点到达的第一个点开始,继续观察从它出发的edges,若是小于已知距离替换并记录

    d) 直至set为空

    cost: O(E+V^2)=O(V^2)

    利用PQueue可以变成O(E+V*logV)

    5. APSP

    支持算法:Floyd's Algorithm(也被称为Floyed-Warshall Algorithm)

     

    三层循环,故O(V^3)

    6. network flow

    类比从工厂向仓库分别通过多种途径运输货物,每条路径可以承载的货物量不同

    对于每一个vertex,流进的flow与流出的flow数目要相同

     

    residual network

     

    支持算法:Edmonds-Karp Algorithm

    找到最短augumenting path,更新residual network,找到新的augumenting path,更新。。。

    O(V*E^2)

  • 相关阅读:
    PHPStorm--美化
    Laravel5.1 模型--关联关系(复杂)
    HTML5 getUserMedia/AudioContext 打造音谱图形化
    如何在终端实时展现当前运行的git分支
    关于ionic的跨域问题
    ionic插件安装与卸载
    虚拟机调试ionic项目
    ionic双击退出键退出APP
    npm install 镜像
    对Date的扩展,将 Date 转化为指定格式的String
  • 原文地址:https://www.cnblogs.com/eleni/p/11730973.html
Copyright © 2011-2022 走看看