越努力,越幸运!!!

青,取之于蓝~而胜于蓝! 冰,水为之~而寒于水!

排序:
默认
按更新时间
按访问量
RSS订阅

SPFA算法 (基于Bellman-Ford算法)

SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法,它还有一个重要的功能是判负环(在差分约束系统中会得以体现),在Bellman-ford算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。(百度百科)SPFA...

2017-11-18 10:30:27

阅读数 129

评论数 0

topological-sort(拓扑排序)

在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件: 每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B...

2017-11-14 16:05:44

阅读数 144

评论数 0

Bellman-Ford算法(求最短路径,并检测负权回路)

Bellman - ford(贝尔曼-福特)算法是求含负权图的单源最短路径的一种算法,效率较低,代码难度较小。其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。 算法时间复杂度O(VE)。因为算法简单,适用范围又广,...

2017-11-11 13:16:41

阅读数 503

评论数 0

图的遍历(DFS和BFS)

根据搜索方法的不同,图的遍历方法有两种:深度优先遍历(DFS)和广度优先遍历(BFS) 深度优先遍历(Depth-First Traversal) 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标...

2017-11-11 11:13:26

阅读数 324

评论数 0

图的两种存储结构及其互相转换

图的存储结构除了要存储 图中各个顶点本身的信息,还要存储边的信息。 常见的图的存储结构有邻接矩阵和邻接表。 邻接矩阵是表示顶点之间相邻关系的矩阵。 图的邻接矩阵是唯一的,适于存储边的数目较多的稠密图。无向图的邻接矩阵一定是一个对称矩阵,可采用压缩存储的思想,只存储上(下)三角形阵的元素即可。...

2017-11-11 10:36:17

阅读数 3410

评论数 0

Kruskal算法(最小生成树)

克鲁斯卡尔(Kruskal)算法是实现图的最小生成树最常用的算法。 克鲁斯卡尔算法是一种用来寻找最小生成树的算法。在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次小边。通常认为克鲁斯卡尔算法时间复杂度为O(elog2e).   (2为log的下标) 克鲁斯卡尔算法是一...

2017-11-10 16:52:35

阅读数 206

评论数 0

Prim算法(最小生成树)

普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtě...

2017-11-10 13:17:20

阅读数 247

评论数 0

Floyd算法(任意两点间的最短路径)

Floyd(弗洛伊德)算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。Floyd算法的时间复杂度为O(N3),空间复杂度为O(N2)。 算法思想:      Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先...

2017-11-10 11:42:14

阅读数 2610

评论数 0

Dijkstra算法(一个节点到其他所有节点的最短路径)

Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图...

2017-11-09 20:51:17

阅读数 3238

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭