Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Union-Find Problem - Algorithms and Applications in Java - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Algorithms and Applications in Java which includes Greedy Method, Divide and Conquer, Dynamic Programming, Backtracking, Branch and Bound, Integer Programming, Neural Networks, Genetic Algorithms, Tabu Search etc.Key important points are: Union-Find Problem, Intermixed Sequence, Union Operation, Using Arrays and Chains, Possible Tree Representations, Result of Find Operation, Trees with Parent Pointers, Trees with Parent Pointers

Typology: Slides

2012/2013

Uploaded on 03/27/2013

agarkar
agarkar 🇮🇳

4.3

(26)

380 documents

1 / 28

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Union-Find Problem
Given a set {1, 2, …, n} of n elements.
Initially each element is in a different set.
{1}, {2}, …, {n}
An intermixed sequence of union and find
operations is performed.
A union operation combines two sets into one.
Each of the n elements is in exactly one set at any
time.
A find operation identifies the set that contains
a particular element.
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Partial preview of the text

Download Union-Find Problem - Algorithms and Applications in Java - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

Union-Find Problem

• Given a set {1, 2, …, n} of n elements.

• Initially each element is in a different set.

 {1}, {2}, …, {n}

• An intermixed sequence of union and find

operations is performed.

• A union operation combines two sets into one.

 Each of the n elements is in exactly one set at any

time.

• A find operation identifies the set that contains

a particular element.

Using Arrays And Chains

• See Section 7.7 for applications as well as for

solutions that use arrays and chains.

• Best time complexity obtained in Section 7.7 is

O(n + u log u + f), where u and f are,

respectively, the number of union and find

operations that are done.

• Using a tree (not a binary tree) to represent a

set, the time complexity becomes almost

O(n + f) (assuming at least n/2 union

operations).

Result Of A Find Operation

• find(i) is to identify the set that contains element i.

• In most applications of the union-find problem, the

user does not provide set identifiers.

• The requirement is that find(i) and find(j) return

the same value iff elements i and j are in the same

set.

find(i) will return the element that is in the tree root.

Strategy For find(i)

• Start at the node that represents element i and

climb up the tree until the root is reached.

• Return the element in the root.

• To climb the tree, each node must have a parent

pointer.

Possible Node Structure

• Use nodes that have two fields: element and

parent.

 Use an array table[] such that table[i] is a

pointer to the node whose element is i.

 To do a find(i) operation, start at the node given

by table[i] and follow parent fields until a node

whose parent field is null is reached.

 Return element in this root node.

Example

table[]

(Only some table entries are shown.)

Union Operation

• union(i,j)

 i and j are the roots of two different trees, i != j.

• To unite the trees, make one tree a subtree

of the other.

 parent[j] = i

Union Example

• union(7,13)

The Union Method

public void union(int rootA, int rootB)

{parent[rootB] = rootA;}

Time Complexity Of union()

• O(1)

u Unions and f Find Operations

• O(u + uf) = O(uf)

• Time to initialize parent[i] = 0 for all i is

O(n).

• Total time is O(n + uf).

• Worse than solution of Section 7.7!

• Back to the drawing board.

Smart Union Strategies

• union(7,13)

• Which tree should become a subtree of the other?

Weight Rule

• Make tree with fewer number of elements a subtree

of the other tree.

• Break ties arbitrarily.

union(7,13)

Implementation

• Root of each tree must record either its

height or the number of elements in the tree.

• When a union is done using the height rule,

the height increases only when two trees of

equal height are united.

• When the weight rule is used, the weight of

the new tree is the sum of the weights of the

trees that are united.