• 图论(各种基础及算法详解)


    基础概念

    G=(V, E)
    如果无向图中从每一个顶点到其他每个顶点都存在一条路径,则称该无向图是连通的(connected)。具有这样性质的有向图称为是强连通的的(strongly connected)。如果有向图不是强连通的,但它的基础图(underlying graph)(也就是其弧上去掉方向说形成的图)是连通的,那么称该有向图是弱连通的(weakly connected)。完全图(complete graph)是其每一对顶点间都存在一条边的图。

    存储表示方式

    1. 邻接矩阵

      • 使用|V|*|V|的二维数组来表示图,g[i][j]=1表示定点i到顶点j右边,0则无。(对于无向图,二维矩阵是对称的,对角线都为0)

      • 这种表示方法,查找两点间是否有边的复杂度为O(n^2),而且处理边数较少的图时效率不高(稀疏矩阵)

    2. 邻接表

    3. 邻接多重表(主要用于存储无向图)

      对无向图而言,其邻接多重表和邻接表的差别,仅仅在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点。

    遍历(搜索)(可用于判断无向图是否连通)(或用于求解连通图的最小生成树算法)

    1. 广度优先搜索

    2. 深度优先搜索

    拓扑排序

    最短路径算法

    1. 深度或广度优先搜索算法(解决单源最短路径)

    2. Floyd算法

    3. Dijkstra算法

    4. Bellman-Ford算法(解决负权边,解决单源最短路径,前几种方法不能求含负权边的图)

    网络流问题

    活动网络

    最小生成树

  • 相关阅读:
    利用rqalpha完成一个股指期货的回测(二) 分钟数据获取和转换
    利用rqalpha完成一个股指期货的回测(一)
    Pandas
    SAR停损指标
    一些简单的指标
    协程--流畅的Python第16章读书笔记
    python初级(302) 8 列表(选择排序练习二)
    博客已转移至 http://blog.yemou.net/
    将博客搬至51CTO
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/wujingqiao/p/9579314.html
Copyright © 2020-2023  润新知