关于图的应用的4个算法的知识点总结(一)

1,生成树:包含图的所有顶点
只含尽可能少的边
若砍去他的一条边则变为非连通
若增加一条边,则会形成一个回路
2,最小生成树:对于带权连通图,权值之和最小的那棵生成树就是最小生成树
3,最小生成树的性质:不是唯一的,但是当图中的所有的边的权值不相等时,最小生成树时唯一的。
最小生成树的权值之和总是唯一的
4 Prim算法:初始时从图中任取一个顶点,加入树T中,再选择一个与当前T中顶点集合距离最近的顶点,并将这个点和它的这个边加入到树T中,每次操作后T中的顶点数和边数都加一,直到所有的顶点都在数T中结束。
5,prim算法的时间复杂度为 O(v^2),适合于求解稠密图的最小生成树
6,Kruskal算法: 是一种按权值的递增次序选择合适边的算法,初始时只有n个顶点而无边的非连通图T,每个顶点自成一个连通分量,然后按边的权值次序进行选边,选取当前权值最小且未被选择的边,若这个边依附于不同的连通分量上,则把他加入T,直至所有的顶点都在同一个连通分量上。在Kruskal算法中通常采用堆来存放边的集合
7, Kruskal的时间复杂度:O( E*logE ),适合边稀疏顶点较多的图。
8,最短路径: 带权路劲长度最短的那条路径。
9,Dijkstra算法: 求单源最短路径,有三个辅助数组,分别是dish[ ] 用来记录源点到其他顶点的当前最短的路径, path[ ] 用来记录从源点到顶点i之间的最短路劲的前驱结点,s[ ] 用来记录已经求得最短路径的顶点。
10,(非常重要) Dijkstra算法的时间复杂度为O( v^2),不能用于权值有负值的图。
11,Floyd算法: Ak[i][j]表示的是从顶点i到顶点j,中间顶点序号不大于k的的最短路径长度。时间复杂度为O( V^3). 允许有带有负值的边,但是不允许包含带负权值的边组成的回路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强大的RGG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值