Problem : To find whether x and y belong to same group or not, i. Solution : Partitioning the individuals into different sets according to the groups in which they fall. This method is known as disjoint set data structure which maintains collection of disjoint sets and each set is represented by its representative which is one of its members. Data Structures used: Array : An array of integers, called parent[]. These relationships create one, or more, virtual trees.

Author:Kajiran Gom
Language:English (Spanish)
Published (Last):9 December 2012
PDF File Size:9.38 Mb
ePub File Size:15.35 Mb
Price:Free* [*Free Regsitration Required]

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy. See our Privacy Policy and User Agreement for details.

Published on Oct 31, SlideShare Explore Search You. Submit Search. Successfully reported this slideshow. We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime. Lecture 6 disjoint set. Upcoming SlideShare. Like this presentation? Why not share! Embed Size px.

Start on. Show related SlideShares at end. WordPress Shortcode. Abirami Sivaprasad , Teaching Follow. Published in: Engineering.

Full Name Comment goes here. Are you sure you want to Yes No. Mary Margarat. No Downloads. Views Total views. Actions Shares. Embeds 0 No embeds. No notes for slide. Lecture 6 disjoint set 1.

Disjoint Set ADT 2. Let a and b be the two elements of set S. Initially all sets are represented in such a way that they are not related. This is done by performing finds on both a and b and checking whether they are in the same equivalence class. If they are not, then we apply union. This operation merges the two equivalence classes containing a and b into a new equivalence class.

This algorithm is dynamic because, as the algorithm proceeds, the sets can change via the union operation. Thus the find takes constant time, O 1. The first object in each linked list is its set's representative. Within each linked list, the objects may appear in any order. Because the ith Union operation updates i objects, the total number of objects updated by all n - 1 UNION operations is 8. The elements in the tree have the same root and hence the root is used to name the set.

The Make-set operation takes O 1 time. For this reason, we use two heuristics to achieve asymptotically fastest disjoint set. The two heuristics are: i. Smart Union Algorithm ii. Path Compression We call this approach union-by-size.

When its depth increases as a result of a union, it is placed in a tree that is at least twice as large as before. Thus, its depth can be increased at most log n times. This implies that the running time for a find operation is O log n , and a sequence of m operations takes O m log n.

Let us assign a size variable for each node and let it contain the size of the tree Initially a 0 0r 1 according to the convenience. Thus, union-by-size is not at all difficult to implement and requires no extra space. It is also fast, on average. This is because when random unions are performed, small sets are merged with large sets throughout the algorithm. We keep track of the height, instead of the size, of each tree and perform unions by making the shallow tree a subtree of the deeper tree.

Thus, union-by-height is a trivial modification of union-by-size. Path compression during the operation Find-set. Each node on the find path now points directly to the root. Thus, for practical purposes the running time can be viewed as linear in m no. The value of this function grows rapidly, even for small inputs.

You just clipped your first slide! Clipping is a handy way to collect important slides you want to go back to later. Now customize the name of a clipboard to store your clips. Visibility Others can see my Clipboard. Cancel Save.


Disjoint-set data structure

In computer science , a disjoint-set data structure also called a union—find data structure or merge—find set is a data structure that tracks a set of elements partitioned into a number of disjoint non-overlapping subsets. It provides near-constant-time operations bounded by the inverse Ackermann function to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses see the Applications section , disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. Disjoint-set forests were first described by Bernard A. Galler and Michael J. Fischer in In , Galil and Italiano published a survey of data structures for disjoint-sets.


Disjoint Set (Or Union-Find) | Set 1 (Detect Cycle in an Undirected Graph)

By using our site, you acknowledge that you have read and understand our Cookie Policy , Privacy Policy , and our Terms of Service. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. I fully understand the concepts of union and find but I am still confused about how to implement them. Could someone please give me an idea of the implementation and also explain what the interface of this data structure should look like?


Subscribe to RSS

A disjoint-set data structure is a data structure that keeps track of a set of elements partitioned into a number of disjoint non-overlapping subsets. A union-find algorithm is an algorithm that performs two useful operations on such a data structure:. Find: Determine which subset a particular element is in. This can be used for determining if two elements are in the same subset. In this post, we will discuss the application of Disjoint Set Data Structure. The application is to check whether a given graph contains a cycle or not.

Related Articles