![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
graph
文章平均质量分 91
iteye_12150
这个作者很懒,什么都没留下…
展开
-
图bridge计算的讨论
简介 最近在学习一些图相关的算法时碰到一个比较有意思的问题。就是关于图中间桥的问题。在图中,一般的边是用于连接两个节点的。如果结合图的连通性来考虑,假设一个边连着图的两个部分,如果我们将这个边去掉,那么将使得图变成两个分割开的部分。那么,这个时候我们称这个边是桥。 那么,对于一个图来说,我们能否找到一些这样的桥呢? 分析 在找到具体的规律之前,我们先看一个图的示例:...原创 2016-07-14 23:53:21 · 604 阅读 · 0 评论 -
Girth of graph
问题描述 在前面的一篇文章中我们讲述过怎么去检测一个图形中间是否有环。对于很多图来说,它们确实存在环,而且可能存在的环长度也各不相同。这里,就引入了一个概念,叫做girth。对于一个不存在环的图来说,它的girth为无穷大,而对于一个存在环的图来说,它的girth为最小的环长度。 我们以下面几个图为例: 这个图正好形成了一个环,所以它的girth值就是环的长度...原创 2014-09-08 22:09:42 · 1596 阅读 · 0 评论 -
无向图的几个基本算法应用
简介 最近在看一些图相关的问题。实际上关于图相关的研究和问题已经非常多了。在前面的几篇文章里,我也谈到过图的定义、遍历法,扩展树生成和最短路径等问题。 除了这些问题及应用以外,还有一些比较常见的问题,虽然难度不大,不过经常会在一些情况下碰到。不仔细去考虑的话还是比较难解决的。这篇文章里重点要讨论解决的几个问题分别是检测图的连通性、图中间环的检测和二分图的检测。 图的连通性...原创 2014-09-05 00:37:50 · 1005 阅读 · 0 评论 -
Shortest path in complement graph
问题描述 Shortest path in complement graph.:Given a graph G, design an algorithm to find the shortest path (number of edges) between s and every other vertex in the complement graph G'. The compl...原创 2016-09-01 23:26:06 · 292 阅读 · 0 评论 -
Diameter of a tree
简介 在之前的文章里我讨论过计算图里最短路径的几种方法,一个是Dijkstra's algorithm,一个是Bellman-Ford Algorithm。它们都是针对一个比较通用形式的图来进行计算处理的。在实际的应用中,有些比较特殊的图,在计算它们的最短路径的应用中往往还有一些更加简单的方法。 问题描述 Given a graph that is a tree (con...原创 2016-08-30 23:24:41 · 522 阅读 · 0 评论 -
Bellman-Ford Algorithm
简介 我在之前的文章里有对Dijkstra's Algorithm进行了思路的分析和讨论,但是也提到了一点,就是这个算法它有一点限制,要求图里面所有的边的权值都是非负的。因为如果有权值为负数的边,就打破了原来算法里每次取得的当前最小值是全局最优值这个假定了。那么在图里面真有权值为负数的边时,甚至在某些情况下存在有加权值为负数的环时,我们该怎么来计算单点源的最短路径呢? 这里,我们将...原创 2016-08-25 23:03:07 · 338 阅读 · 0 评论 -
Dijkstra's algorithm再理解
简介Dijkstra's algorithm是一个求图中单点到其他所有点最短距离的算法。我在之前的一篇文章里也有过一些讨论。只是那篇文章写得比较仓促,对于该算法的思想和推导理解得也并不深刻。经过一些时间的思考,这里想对该算法的思想做一个进一步的阐述,并对一些和它相关的问题进行比较讨论。 算法描述分析 对于这个算法来说,它有这么一个前提。在一个连通的图中(可以是有向图或者无向图...原创 2016-08-11 23:17:29 · 8777 阅读 · 1 评论 -
Dijkstra's algorithm讨论
简介 Dijkstra算法是图算法里求单点源最短路径的一个经典问题。以前在看一些学习材料的时候经常看到它被提起。在将近10年前学习的时候曾经看过一遍,可惜理解的还不够深刻,很快就忘记了。理解一个问题的的基础就是要理解它背后的核心思想。本文对该算法的过程和推导做一个分析,希望能够加深一些印象。 问题分析 这个问题的本身看起来比较简单。就是对于一个我们熟知的图来说,我们...原创 2014-02-04 13:10:44 · 143 阅读 · 0 评论 -
Minimum Spanning Trees
简介 最近几天在家闲来无事,就打算把几个原来一直不太清楚的问题整理一下。现在代码都写得想吐了,好在问题也弄清楚了。Minimum Spanning Tree是一个图算法中很典型的应用,我们常用的构建这种树的算法有两种,Prim算法和Kruskal算法。从表面上看起来这两种方法比较复杂,等摸清楚了他们的思路之后会发现还是基于一个很简单的思想。另外,在实现各种细节的时候所面临的各种问题,...原创 2014-02-02 11:54:37 · 262 阅读 · 0 评论 -
图的数据结构定义以及两种遍历方法的讨论
简介 很早以前接触图的定义时,对于它的定义和各种操作有过一种简单的了解。图的结构和通常的其他数据结构不太一样。针对不同的情况我们可以定义不同的样式来处理。这里针对图的基本定义形式和两种常见的遍历方法(深度优先和广度优先)进行讨论。 图的结构 从直观的角度来看,我们常见的图一般是这样的:或者如下图这样: 这两种图我们分别称其为无向图和有向图。我们...原创 2014-01-31 12:50:29 · 607 阅读 · 0 评论 -
All paths in a graph
问题描述 给定一个图中间两个节点,我们需要返回这两个节点之间所有的simple path。什么是simple path呢?就是图中间不包含有重复节点的路径。 问题分析 对于这个问题,我们比较容易想到一些和其他问题近似的地方。比如说给定两个节点要判断它们是否连通。而且在连通的时候我们可以找到一条这两个节点之间的路径。对于这个相对简化的问题来说,我们可以通过图的某种遍历方式,每...原创 2016-07-26 22:16:02 · 171 阅读 · 0 评论 -
Deletion order
问题描述 给定一个连通的图,确定一个删除节点的顺序,使得每次删除节点之后图的剩余部分依然是连通的。要求算法的时间复杂度是O(V + E)。 分析 这个问题粗看起来比较复杂。因为对于一个图来说,假设我们要删除一个节点,那么它所对应的边都要被删掉。光去遍历所有的节点找到所有包含某个要删除节点的边都要费很大的劲。所以不能单纯的用一个个查找然后删除的方法。 我们来看这个问题的...原创 2016-07-25 23:18:27 · 156 阅读 · 0 评论 -
有向图的几个算法分析总结
简介 前面讨论的很多文章里,都是针对无向图进行的分析。无向图的一个特性就是其中一旦两个节点a和b是相连的,这就意味着有路径从a到b,同时也有从b到a的。它具体对应的矩阵表达方式对应着一个对称矩阵。而这里重点是考察有向图。和无向图比起来,有向图更加多了一种出入度的概念。因为方向的有向性,很多以前在无向图里看起来比较简单的问题在这里会变得更加有意思。 有向图定义 一个常用的...原创 2014-09-14 23:33:18 · 3209 阅读 · 0 评论