最小生成树(一)kruskal】的更多相关文章

最近在复习数据结构,所以想起了之前做的一个最小生成树算法.用Kruskal算法实现的,结合堆排序可以复习回顾数据结构.现在写出来与大家分享. 最小生成树算法思想:书上说的是在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树.说白了其实就是在含有 n 个顶点的连通网中选择 n-1 条边,构成一棵极小连通子图,并使该连…
模板题,学习一下最小生成树的Kruskal算法 对于一个连通网(连通带权图,假定每条边上的权均为大于零的实数)来说,每棵树的权(即树中所有边的权值总和)也可能不同 具有权最小的生成树称为最小生成树 生成树: 无向连通图的边的集合 无回路 连接所有的点 最小: 所有边的权值之和最小 n个顶点的树有n-1条边 时间复杂度:O(ElogE) 对于稀疏图来说 按所给的边的权值从小到大排序,如果该边不与已经选的边形成环就选择它 这里用并查集来实现 第i条边的端点放在u.v数组中,权值保存在w中 这里用的是…
主题链接:problemId=203" target="_blank">ZOJ 1203 Swordfish 旗鱼 Swordfish Time Limit: 2 Seconds      Memory Limit: 65536 KB There exists a world within our world A world beneath what we call cyberspace. A world protected by firewalls, password…
题目简述:假如有一个无向连通图,有n个顶点,有许多(带有权值即长度)边,让你用在其中选n-1条边把这n个顶点连起来,不漏掉任何一个点,然后这n-1条边的权值总和最小,就是最小生成树了,注意,不可绕成圈. 思路简介:对比普里姆和克鲁斯卡尔算法,克鲁斯卡尔算法主要针对边来展开,边数少时效率比较高,所以对于稀疏图有较大的优势:而普里姆算法对于稠密图,即边数非常多的情况下更好一些.其思路为将边按照权值从小到大排列,先取出最小的边,,再取出第二小的边,直到连接所有顶点,其中要注意不能将同一条边连接在同一颗…
layout: post title: 最小生成树 Prim Kruskal date: 2017-04-29 tag: 数据结构和算法 --- 目录 TOC {:toc} 最小生成树Minimum Spanning Tree 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 树: 无回路,|V|个顶点,一定有|V|-1条边 生成树: 包含全部顶点,|V|-1 条边都在图里:边权重和最小 最小生成树存在<--->图联通:向生成…
数据结构与算法--最小生成树之Kruskal算法 上一节介绍了Prim算法,接着来看Kruskal算法. 我们知道Prim算法是从某个顶点开始,从现有树周围的所有邻边中选出权值最小的那条加入到MST中.不妨换个思路,为何不一开始就将所有边中权值最小的边取出来搭建二叉树?这里说的最小权值是全局的最小权值,而Prim说的最小权值,是已经访问过的顶点的周围的边中的最小权值,这个范围当然比全部边要小. 于是需要对边按照权值升序排列,由于每次取出的最小权值分布在图的各个地方,一开始各条边可能并不是相连的,…
题目链接: 传送门 find the most comfortable road Time Limit: 1000MS     Memory Limit: 32768 K Description XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Speed,同时XX星人对 Flycar的"舒适度"有特殊要求,即乘坐过程中最高速度与最低速度的差越小…
matrix.c #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <limits.h> #include "aqueue.h" #define MAX_VALUE INT_MAX #define MAX_NUM 100 typedef char node_type; typedef struct matrix { node_type vertex[M…
最小生成树Minimum Spanning Tree 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 树: 无回路   |V|个顶点,一定有|V|-1条边 生成树: 包含全部顶点 |V|-1 条边都在图里 边权重和最小 最小生成树存在<--->图联通 向生成树中任加一条边都一定构成回路 贪心算法 “贪”:每一步都要最好的 “好”:权重最小的边 需要约束: ①只能用图里有的边 ②只能正好用掉|V|-1条边 ③不能有回路 Pri…
畅通工程再续 Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米.当然,为了节省资金,只要求实现任意2个小岛之间有路通即可.其中桥的价格为 100元/米. Input输入…