计科1111-1114班第五周讲义、课外作业(强连通分量、BFS,截止日期:2014年4月11日23点-周五晚,学委飞信通知同学)

这篇博客介绍了有向图的强连通分量算法和Dijkstra算法。讲解了如何利用DFS寻找强连通分量,并通过反向图进行深度优先遍历。同时,阐述了Dijkstra算法在加权图中寻找单源最短路径的应用,强调了优先队列在算法中的重要性。此外,博主分享了作业要求,包括图的邻接表表示、反向图构造、强连通分量编程实现以及Dijkstra算法的编程实现。
摘要由CSDN通过智能技术生成

    第五周主要讲授了 "第3章:图的分解"的有向图强连通分量,以及“第4章:图的路径”中BFS算法。

讲授内容

1.  强连通分量(SSC-Strong Connectivity Component):SSC的主要算法,是建立在深度优先搜索(DFS)和 有向无环图(DAG)的概念之上。教材P105的两个性质,其中“性质:在有向无环图中,每条边都指向一个post值更小的顶点”,换句话就是,“源点的post值最大”,因为源点指向其他顶点;“性质:每个有向无环图至少含有一个源点和一个汇点”,那么就很自然的引申出了 强连通分量 的发现算法。


    有向图G的超图是一个有向无环图,其反向图Gr也是一个有向无环图,其中G的源点成了Gr的汇点,G的汇点成了Gr的源点。所以,我们可以利用Gr,在深度优先搜索过程中,找到post最大的顶点,并且对顶点按照post值进行逆序(假设其顶点逆序为:GIJLKH  D  CF  BE  A,其中共有5个强连通分量)。则在原图G中,就是依次在汇点强连通分量中的顶点(顶点G)出发,进行深度优先遍历,从而不断的找到第一个汇点强连通分量(GHKLJI),标记好已经搜索的顶点;然后继续从顶点D开始搜索,得到第二个强连通分量D;……核心:深度优先搜索中顶点的搜索顺序至关重要。

2. (重点)有向图G(V,E)的强连通分量发现算法:(a)生成G的反向图Gr;(b)对反向图Gr进行DFS搜索,得到顶点post的逆序数组;(c)按照顶点post的逆序,在原图中进行深度优先遍历。

3.  广度优先搜索(BFS-Breadth First Search):特别适合用邻接表来表示图,与BFS搜索的顺序配合完美。算法中最核心的部分就是使用队列(Queue),利用其先进先出(FIFO)的性质,算法伪代码在教材P121.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值