图论
文章平均质量分 67
zi_wan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小生成树-Prim算法
Prim算法总是维护最小生成树的一部分。最初,Prim算法近仅确定1号节点属于最小生成树。在任意时刻,设已经确定属于最小生成树的节点集合为T,剩余节点集合为S。...原创 2018-07-09 19:46:00 · 293 阅读 · 0 评论 -
堆优化的dijkstra算法
基于贪心思想,只适用于边长为非负数的图算法流程1.初始化的dist[1]=0,其余节点的dist为正无穷2.找出一个未被标记、dist[x]最小的节点x并标记3.扫描x的所有出边(x,y,z),若dist[y]>dist[x]+z,则更新dist[y]4.重复2、3,直到所有节点被标记//by ziwan Catherine //堆优化dijkstra 边长为非负数 //d[n]从起点到n...原创 2018-07-04 11:21:25 · 2610 阅读 · 0 评论 -
Bellman-Ford和SPFA算法
定义 给定一张有向图,若对于某一条边(x,y,z),有dist[y]<=dist[x]+z成立,则称该边满足三角形不等式。若所有边均满足三角形不等式,则dist数组就是所求的最短路。基于迭代思想的Bellman-Ford算法1.扫描所有边(x,y,z),若有dist[y]>dist[x]+z,则更新dist[y]2.重复上述步骤直到没有更新操作发生SPFA算法(队列优化的Bell...原创 2018-07-04 12:06:18 · 359 阅读 · 0 评论 -
Floyed算法-求任意两点间最短路
本质是动态规划,O(n^3)算法思路设D[k,i,j]表示“经过若干个编号不超过k的节点”从i到j的最短路该问题可划分为两个子问题:1.经过编号不超过k-1的节点从i到j 2.从i先到k再到jD[k,i,j]=min(D[k-1,i,j],D[k-1,i,k]+D[k-1,k,j])初值为D[0,i,j]=A[i,j] //开头定义的邻接矩阵k这一维可以被忽略Tipsk是阶段,必须置于最外层循...原创 2018-07-04 15:22:20 · 1209 阅读 · 0 评论 -
最小生成树-Kruskal算法
定理:任何一棵最小生成树一定包含无向图中权值最小的边(反证法)算法思路Kruskal算法基于上述定理,总是维护无向图的最小生成森林。最初,可认为生成森林由0条边构成,每个节点各自为树。在任意时刻,从剩余边中选出一条权值最小的,并且两个端点不连通(属于两棵不同的树),把该边加入生成森林。节点的连通情况用并查集维护。算法流程1.建立并查集,每个点各自为一个集合2.把所有边按权值升序排列,依次扫描每条边...原创 2018-07-06 19:26:13 · 210 阅读 · 0 评论
分享