floyd算法: 解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包. 设为从到的只以集合中的节点为中间节点的最短路径的长度. 若最短路径经过点k,则: 若最短路径不经过点k,则. 因此,. 在实际算法中,为了节约空间,可以直接在原来空间上进行迭代,这样空间可降至二维. 我的理解为: folyd算法是每次选定一个点,查看任意两个顶点的距离是否都小于经过这个点之和的距离. 即:假如ABC三个顶点相连,选定C的时候,查AB的距离是否大于 AC…
一个连通图的生成树是一个极小的连通子图,它包含图中全部的顶点(n个顶点),但只有n-1条边. 最小生成树:构造连通网的最小代价(最小权值)生成树. prim算法在严蔚敏树上有解释,但是都是数学语言,很深奥. 最小生成树MST性质:假设N=(V,{E})是一个连通网,U是顶点集V的一个非空子集.若(u,v)是一条具有最小权值(代价)的边, 其中u∈U,v∈V-U,则必存在一颗包含边(u,v)的最小生成树. prim算法过程为: 假设N=(V,{E})是连通图,TE是N上最小生成树中边的集合.算法从…
00 问题 00-1 描述 对给定高度为n的一个整数三角形,找出从顶部到底部的最小路径和.每个整数只能向下移动到与之相邻的整数. 找到一个一样的力扣题:120. 三角形最小路径和 - 力扣(LeetCode) (leetcode-cn.com) 示例1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示:   2  3 4 6 5 74 1 8 3自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11).    示…
00 问题 00-1 描述 对给定高度为n的一个整数三角形,找出从顶部到底部的最小路径和.每个整数只能向下移动到与之相邻的整数. 找到一个一样的力扣题:120. 三角形最小路径和 - 力扣(LeetCode) (leetcode-cn.com) 示例1: 输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]] 输出:11 解释:如下面简图所示: 2 3 4 6 5 7 4 1 8 3 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11). 示例…
在网图中,最短路径的概论: 两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点. 维基百科上面的解释: 这个算法是通过为每个顶点 v 保留目前为止所找到的从s到v的最短路径来工作的. 初始时,原点 s 的路径长度值被赋为 0 (d[s] = 0),若存在能直接到达的边(s,m),则把d[m]设为w(s,m),同时把所有其他(s不能直接到达的)顶点的路径长度设为无穷大,即表示我们不知道任何通向这些顶点的路径(对于 V 中所有顶点 v除 s 和上述 m 外…
之前的Prim算法是基于顶点查找的算法,而Kruskal则是从边入手. 通俗的讲:就是希望通过 边的权值大小 来寻找最小生成树.(所有的边称为边集合,最小生成树形成的过程中的顶点集合称为W) 选取边集合中权值最小的边,查看边的两个顶点是否能和集合W构成环路,若能构成环路,则舍去:否则选取下一条最小权值边重复上一步. 这里需要注意一个问题,我们从最小权值的边开始寻找最小生成树, 判断当即将选入的边的两个顶点是否会和已经在集合中的顶点构成环路,这个是我们需要解决的问题. 先说下Kruskal算法的数…
图: 目录: 1.概念 2.邻接矩阵(结构,深度/广度优先遍历) 3.邻接表(结构,深度/广度优先遍历) 图的基本概念: 数据元素:顶点 1.有穷非空(必须有顶点) 2.顶点之间为边(可空) 无向图:边没有方向,用(vi,vj)表示,(vj,vi)也可. 有向图:边有方向,称为弧,用<vi,vj>表示.vi尾,vj头 简单图:不存在顶点到其自身的边,且同一条边不重复出现. 无向完全图:无向图中,所有的顶点都有边连接. 边的条数:n*(n-1)/2 有向完全图:在有向图中,如果任意两个顶点之间都…
之前我们介绍过,在一个工程中我们关心两个问题: (1)工程是否顺利进行 (2)整个工程最短时间. 之前我们优先关心的是顶点(AOV),同样我们也可以优先关心边(同理有AOE).(Activity On Edge Network) 看看百度百科上解释: AOE网:Activity on edge network 若在带权的有向图中,以顶点表示事件,以有向边表示活动,边上的权值表示活动的开销(如该活动持续的时间),则此带权的有向图称为AOE网. 如果用AOE网来表示一项工程,那么,仅仅考虑各个子工程…
这一篇写有向无环图及其它的应用: 清楚概念: 有向无环图(DAG):一个无环的有向图.通俗的讲就是从一个点沿着有向边出发,无论怎么遍历都不会回到出发点上. 有向无环图是描述一项工程或者系统的进行过程的有效工具,比如办公室,到工商局里面注册的时候,他会提示你一个流程,这个流程就是一个有向无环图. 第一步不做,第二步就做不了. 在其期间关心两个问题: 1.工程是否顺利?(拓扑排序) 2.估算整个工程所必须的最短时间.(关键路径) 拓扑排序: 数学语言:某个集合上的一个偏序得到该集合上的一个全序的操作…
算法介绍 和Dijkstra算法一样,Floyd算法也是为了解决寻找给定的加权图中顶点间最短路径的算法.不同的是,Floyd可以用来解决"多源最短路径"的问题. 算法思路 算法需要引入两个二维数组ShortPathTable和Patharc.ShortPathTable表示顶点到顶点的最短路径权值和的矩阵,Patharc表示对应顶点的最小路径的前驱矩阵.在为分析任何顶点之前,ShortPathTable初始化为图的邻接矩阵. 假设图G有N个顶点,那么需要对矩阵ShortPathTabl…