Data Structure Lecture Note (Week 4, Lecture 12)

This lecture focuses on spanning trees and minimum spanning tree algorithms in graphs. It discusses Prim's Algorithm, a greedy approach to finding the MST in an undirected weighted graph, and Union-Find Data Structure for equivalence class organization. Kruskal's Algorithm is also covered, detailing its process of creating an MST while maintaining disjoint sets." 128733577,12320608,深入理解Linux环境变量与命令行参数,"['Linux', '环境变量', '命令行', '编程', '系统管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Today we will focus on proof. They are not trivial. They are constructive, might be useful in future studies.

Spanning Tree

Spanning tree of a graph is a tree that contains all the vertices of the graph, and edges of the trees are a subset of edges on the graph, spanning tree is a subgraph of the original graph.

DFS / BFS trees are spanning trees

minimum spanning tree on undirected weighted graph is the spanning tree with minimum sum of weight on edges

Minimum Spanning tree algorithm

Given a weighted undirected graph G, find a spanning tree of graph G such that the sum of weights is minimized

Prim’s Algorithm

Greedy algorithm

Initialize a tree with a single vertex, chosen arbitrarily from the graph

Grow the tree by one edge: of the eges that connect the tree to vertices not yet in the tree, find the minimum-weight edge, and transfer it to the tree.

Repeat last step, until all vertices are in the tree.

https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/

The solution is not unique. Ties are broken arbitrarily.


Prim’s algorithm 1

Let S = {1}

(*) choose a minimum weighted edge (a,b) from V-S to S, add a to S

repeat (*) until S = V

cost of (*) step added together, note that there are |E| many edges in total, if we use HEAP + linked list, we will add and remove at most 2|E| edges from heap which costs |E| log |V|

Prim’s algorithm 2

Let S = { 1 }

(*) Choose a minimum weighted edge (a, b) from V – S to S, add a to S

Implement by adjacency matrix

repeat (*) until S = V

O(|V|^2)


Claim: each step k of (*)[^1]( Choose a minimum weighted edge (a, b) from V – S to S, add a to S ) , let U_k be the set of edges selected, then there is a MST T T T such taht for all k, U k ⊂ T U_k \subset T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值