图论算法

1. 图的表示:邻接矩阵和邻接表

  • 邻接矩阵:大小为|V|的二维数组,对于每条边(u, v),置A[u][v]=1或该边的权值
  • 邻接表:对每一个顶点,使用一个表存放所有邻接的顶点,并将所有顶点的表头存放在一个大小为|V|的表中

2. 拓扑排序:如果存在一条v_iv_j的路径,那么在排序中v_i出现在v_j的前面,要求图为有向无圈图,且排序结果不唯一

  • 将没有入边(入度为0)的顶点放入一个队列中(可以使用邻接表的表头存放顶点的入度)
  • 队列进行出队,并出队顶点的边删除,并将这些边连接的其他顶点的入度减1
  • 重复上述操作,直到队列为空

3. 无权最短路径:给定图G=(V, E)和一个顶点s,找出从s到G中每一个顶点的最短路径

  • 广度优先搜索(BFS):按层处理顶点,距开始顶点最近的顶点首先被遍历,最远的顶点最后被遍历
  • 深度优先搜索(DFS):从顶点s开始,递归的处理所有与s邻接的顶点,对每一个可能的分支路径深入到不能再深入为止,而且每个顶点只能访问一次

4. Dijkstra算法:该算法分阶段进行,在每个阶段,选择一个顶点v,它在所有未知顶点中具有最小的带权路径,并认为从s到v的最短路径是已知的,然后更新其他与v邻接的顶点的带权路径,直到所有顶点已知(图无圈时可以按拓扑顺序选择顶点改进算法,因为选择某个顶点时,它没有从未知顶点发出的进入边,则它的距离不会再降低)

5. Floyd算法:解决任意两点间的最短路径,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包

  • 算法思想:从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j) = Dis(i,k) + Dis(k,j),这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。
  • 算法描述:
         1️⃣从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大
         2️⃣对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它
  • 十字交叉法:给出矩阵,其中矩阵A是邻接矩阵,而矩阵Path记录u,v两点之间最短路径所必须经过的点






5. 最小生成树:由图中所有顶点和连接所有顶点的边构成,且其总价值最低

  • Prim算法:构建一个已知顶点集K和一个未知顶点集U,初始状态K为空集,U=V;在U中随机选取一个顶点v从U中删除,并放入K中;选择以K中顶点为端点,另一端在U中的且边上权值最低的边添加到最小生成树中,并将U中的对应顶点移动至K中,重复操作直到U为空集
  • Kruskal算法:连续的选择权值最小且不构成圈的边添加到最小生成树中,即选择两端不连通且权值最小的边
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 1736年,瑞士数学家Euler(欧拉)在他的一篇论文中讨论了格尼斯七桥问题,由此诞生了一个全新的数学分支——图论...
    不困于情阅读 4,407评论 0 9
  • 图的定义与术语 1、图按照有无方向分为无向图和有向图。无向图由顶点和边构成,有向图由顶点和弧构成。弧有弧尾和弧头之...
    unravelW阅读 408评论 0 0
  • 简介 Floyd算法的作用是求出一个图之间任意两点的最短距离,被认为是一个经典的动态规划算法——然而我至今仍然没搞...
    qratosone阅读 1,762评论 0 0
  • 1. 图的定义和基本术语 线性结构中,元素仅有线性关系,每个元素只有一个直接前驱和直接后继;树形结构中,数据元素(...
    yinxmm阅读 5,461评论 0 3
  • 来到龙里泉,龙头绝壁嵌。 日夜不闭眼,颌下生水帘。
    简村小吹阅读 715评论 14 14