数据结构与算法----图的应用(待补充)

#构造最小生成树

##最小生成树的概念

  • 一个有n个结点的连通图的生成树是原图的最小连通子图,它包含原图中的所有n个结点,并且有保持图联通的最少的边
  • 在无向连通带权图中需满足
  • 构造的最小生成树必须包括n个结点
  • 构造的最小生成树中有且只有n-1条边
  • 构造的最小生成树中不存在回路

##普里姆算法
假设 G=(V,E)是一个具有 n 个顶点的带权连通无向图,T= (U,TE) 是 G 的最小生成树,其中,U 是 T 的定点集,TE 是 T 的边集。
步骤如下:

  1. 初始化U={v}。v到其他定点的所有边为候选边
  2. 重复一下步骤 n-1 次,使得其他 n-1 个定点被加入到 U 中:
    a)从候选边中挑出权值最小的边输出,设改变在 V — U 中的顶点是 k ,将 k 加入 U 中;
    b)考察当前 V----U 中的所有顶点 i ,修改候选边,若 (i,k) 的权值小于原来和定点 i 关联的候选便,则用 (i,k) 取代后者作为候选边

##克鲁斯卡尔算法

##两种算法比较

普利姆算法求最小生成树,是从顶点方面考虑,存在两重遍历(已访问顶点集和未访问顶点集),对应的还有一个克鲁斯卡尔算法求最小生成树,是从边的角度出发考虑的。根据各自算法特性,可以粗略的判断出,把稠密图看作边集相对于点集数量级比较大,稀疏图看作点集相对于边集较大,则普利姆算法适合于计算稠密图,克鲁斯卡尔算法适合于计算稀疏图

#求最短路径

##狄克斯特拉

##弗洛伊德

##注意事项

  • 边的表示方法:
发布了27 篇原创文章 · 获赞 12 · 访问量 5189

猜你喜欢

转载自blog.csdn.net/Kobe_k/article/details/80642356
今日推荐