13 A: External Algorithms II; Disjoint Sets; Java API Support
|
|
- Benjamin Oliver
- 6 years ago
- Views:
Transcription
1 13 A: External Algorithms II; ; Java API Support Martin Henz April 15, 2009 Generated on Friday A: th External April, 2009, Algorithms 12:37 II; ; Java API Support 1
2 1 External Sorting A: External Algorithms II; ; Java API Support 2
3 Model for External Sorting The Simple Algorithm Multiway Merge 1 External Sorting Model for External Sorting The Simple Algorithm Multiway Merge A: External Algorithms II; ; Java API Support 3
4 Model for External Sorting The Simple Algorithm Multiway Merge Tapes as Storage Similar to disks Access time many orders of magnitude slower than main memory Additional characteristics Large amounts of data can be read sequentially quite efficiently Access of previous locations is extremely slow, as it requires re-winding the tape! 13 A: External Algorithms II; ; Java API Support 4
5 Model for External Sorting The Simple Algorithm Multiway Merge External Sorting Main idea Use tapes sequentially, and read one block from each input tape tape Merge blocks Sort the blocks Use merge procedure from mergesort to merge 13 A: External Algorithms II; ; Java API Support 5
6 Model for External Sorting The Simple Algorithm Multiway Merge The Simple Algorithm: Overview Four tapes Two input tapes; two output tapes Read and write runs Read runs from input tape, sort them and write alternatively to output tapes Continue, writing larger runs Read two runs from each output tape, and merge them on the fly, writing alternatively to input tapes Continue until one tape has all sorted data 13 A: External Algorithms II; ; Java API Support 6
7 Model for External Sorting The Simple Algorithm Multiway Merge Multiway Merge Why only four tapes? If we have more than four tapes, we can take advantage of them by using multiway merge How finding the smallest element during merge? Priority queue! Each iteration of inner loop deletemin to find smallest element insert new element from tape from which element was deleted 13 A: External Algorithms II; ; Java API Support 7
8 Model for External Sorting The Simple Algorithm Multiway Merge Polyphase Merge and Replacement Selection Polyphase merge: main idea Make use of fewer tapes, by re-using tapes for reading and writing Leading to tape organization using kth order Fibonacci numbers Replacement selection: main idea Make use of input tape as output tape, reusing the tapes on the fly 13 A: External Algorithms II; ; Java API Support 8
9 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants 1 External Sorting 2 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Applications A: External Algorithms II; ; Java API Support 9
10 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Equivalence Relations Definition An equivalence relation is a relation R that satisfies three properties: 1 (Reflexive) ara, for all a S. 2 (Symmetric) arb if and only if bra. 3 (Transitive) arb and brc implies arc. Examples Electrical connectivity (metal wires between points) Cities belonging to same country 13 A: External Algorithms II; ; Java API Support 10
11 The Dynamic Equivalence Problem Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Initial setup Collection of N disjoint sets, each with one element Operations find(a): return the set of which x is element union(a, b): merge the sets to which a and b belong, so that find(a) = find(b) 13 A: External Algorithms II; ; Java API Support 11
12 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Strategies Fast Find, Slow Union Use array repres to store equivalence class for each element find(a): return repres[a] union(a, b): if repres[x] = repres[b] then set repres[x] to repres[a] Fast Union, Reasonable Find Union/find data structure 13 A: External Algorithms II; ; Java API Support 12
13 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Basic Data Structure Idea Maintain forest corresponding to equivalence relation Union Merge trees Find Return root of tree Observe Only upward direction needed! 13 A: External Algorithms II; ; Java API Support 13
14 Example External Sorting Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Initial setup: After union(4, 5) 13 A: External Algorithms II; ; Java API Support 14
15 Example External Sorting Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants After union(4, 5) After union(6, 7) 13 A: External Algorithms II; ; Java API Support 15
16 Example External Sorting Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants After union(6, 7) After union(4, 6) 13 A: External Algorithms II; ; Java API Support 16
17 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Representation Idea Remember parent node only; mark root with 1 13 A: External Algorithms II; ; Java API Support 17
18 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Variants Problem How to choose root for union? Bad choice can lead to long paths Union-by-size Always make the smaller tree a subtree of the larger tree Analysis When depth increases, the tree is smaller than the other side. Thus, after union, it is at least twice as large. Height less than or equal to log N 13 A: External Algorithms II; ; Java API Support 18
19 Variants External Sorting Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Union-by-height Always make the shorter tree a subtree of the higher tree Height As with union-by-size: O(log N) 13 A: External Algorithms II; ; Java API Support 19
20 Path Compression Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants During find make every node point to root after find(14) 13 A: External Algorithms II; ; Java API Support 20
21 A Very Slowly Growing Function Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Definition log N is the number of times log needs to be applied to N until N 1. Examples log 2 = 1 log 4 = 2 log 16 = 3 log = A: External Algorithms II; ; Java API Support 21
22 Equivalence Relations The Dynamic Equivalence Problem Basic Data Structure Variants Runtime Consider variant Union-by-height combined with path compression Theorem The running time of M unions and finds is O(M log N). 13 A: External Algorithms II; ; Java API Support 22
23 Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting 1 External Sorting 2 3 Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting 4 13 A: External Algorithms II; ; Java API Support 23
24 The Top-level Collection Interface Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting public interface C o l l e c t i o n <Any> extends I t e r a b l e <Any> { i n t size ( ) ; boolean isempty ( ) ; void c l e a r ( ) ; boolean contains ( Any x ) ; boolean add ( Any x ) ; / / s i c boolean remove ( Any x ) ; / / s i c java. u t i l. I t e r a t o r <Any> i t e r a t o r ( ) ; } 13 A: External Algorithms II; ; Java API Support 24
25 Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting The List Interface in Collection API public interface L i s t <Any> extends C o l l e c t i o n <Any> { Any get ( i n t i d x ) ; Any set ( i n t idx, Any newval ) ; void add ( i n t idx, Any x ) ; void remove ( i n t i d x ) ; } L i s t I t e r a t o r <Any> l i s t I t e r a t o r ( i n t pos ) ; 13 A: External Algorithms II; ; Java API Support 25
26 ArrayList and LinkedList Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting public class A r r a y L i s t <Any> implements L i s t <Any> {... } public class LinkedList<Any> implements L i s t <Any> {... } 13 A: External Algorithms II; ; Java API Support 26
27 Iterators External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting public interface I t e r a t o r <Any> { boolean hasnext ( ) ; Any next ( ) ; void remove ( ) ; } 13 A: External Algorithms II; ; Java API Support 27
28 ListIterators External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting public interface L i s t I t e r a t o r <Any> extends I t e r a t o r <Any> { boolean hasprevious ( ) ; Any previous ( ) ; void add ( Any x ) ; void set ( Any newval ) ; } 13 A: External Algorithms II; ; Java API Support 28
29 TreeSet External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Implements Collection Guarantees O(log N) time for add, remove and contains 13 A: External Algorithms II; ; Java API Support 29
30 AbstractMap<K,V> Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Basic operations V get(k key): Returns the value to which the specified key is mapped. V put(k key, V value): Associates the specified value with the specified key in this map. Other operations containskey(key), containsvalue(val), remove(key) 13 A: External Algorithms II; ; Java API Support 30
31 TreeMap External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Extends AbstractMap Guarantees O(log N) time for put, get, containskey, containsvalue, remove 13 A: External Algorithms II; ; Java API Support 31
32 HashMap External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Extends AbstractMap Uses separate chaining with rehashing Rehashing is governed by initial capacity and load factor, set in constructor 13 A: External Algorithms II; ; Java API Support 32
33 HashSet External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Implements Collection using HashMap 13 A: External Algorithms II; ; Java API Support 33
34 PriorityQueue External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Implements Collection Efficient implementation of heap data structure Operation names: deletemin is called poll insert is called add 13 A: External Algorithms II; ; Java API Support 34
35 Sorting External Sorting Collections, Lists, Iterators Trees Hashing PriorityQueue Sorting Generic sorting supported by class Collections Uses mergesort in order to minimize number of comparisons Sorting of built-in numerical types supported by class Arrays Uses efficient implementation of quicksort, to take advantage of tight inner loop. 13 A: External Algorithms II; ; Java API Support 35
36 1 External Sorting A: External Algorithms II; ; Java API Support 36
37 Last Puzzler: Package Deal package c l i c k ; public class CodeTalk { public void d o I t ( ) { printmessage ( ) ; } void printmessage ( ) { System. out. p r i n t l n ( C l i c k ) ; } } 13 A: External Algorithms II; ; Java API Support 37
38 Last Puzzler: Package Deal package hack ; import c l i c k. CodeTalk ; public class TypeIt { private s t a t i c class C l i c k I t extends CodeTalk { void printmessage ( ) { System. out. p r i n t l n ( Hack ) ; } } public s t a t i c void main ( S t r i n g [ ] args ) { C l i c k I t c l i c k i t = new C l i c k I t ( ) ; c l i c k i t. d o I t ( ) ; } } What does clickit. doit () print? Click or Hack? 13 A: External Algorithms II; ; Java API Support 38
39 Java s Access Modifiers public : available wherever the class is available private : only available within the class protected : available in subclasses and within same package none : available within the same package 13 A: External Algorithms II; ; Java API Support 39
40 Access Modifiers Govern Inheritance Overriding only available methods A method can be overridden only when it is available according to the modifier rules. Package visibility Method printmessage can only be overridden within package click. Result Click is printed. 13 A: External Algorithms II; ; Java API Support 40
41 This Week and Beyond Thursday tutorial: Assignment 9 Friday lecture: CS1102S summary, outlook; questions? Next week: Reading week, consultation by appointment 27/4 and 28/4: no consultation 29/4, 5pm: Final 13 A: External Algorithms II; ; Java API Support 41
Outline Purpose Disjoint Sets Maze Generation. Disjoint Sets. Seth Long. March 24, 2010
March 24, 2010 Equivalence Classes Some Applications Forming Equivalence Classes Equivalence Classes Some Applications Forming Equivalence Classes Equivalence Classes The class of all things equivelant
More informationEXAMINATIONS 2015 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
T E W H A R E W Ā N A N G A O T E Student ID:....................... Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2015 TRIMESTER 2 COMP103 INTRODUCTION
More informationAP Computer Science 4325
4325 Instructional Unit Algorithm Design Techniques -divide-and-conquer The students will be -Decide whether an algorithm -classroom discussion -backtracking able to classify uses divide-and-conquer, -worksheets
More information(f) Given what we know about linked lists and arrays, when would we choose to use one data structure over the other?
CSM B Hashing & Heaps Spring 0 Week 0: March 0, 0 Motivation. (a) In the worst case, how long does it take to index into a linked list? Θ(N) (b) In the worst case, how long does it take to index into an
More informationUnion-find algorithms. (1) How do you determine whether a vertex x is connected to a vertex y in a graph?
Union-find algorithms Consider the following problems: (1) How do you determine whether a vertex x is connected to a vertex y in a graph? (2) Let vertices correspond to objects and edges mean "is in the
More informationPriority Queues. 04/10/03 Lecture 22 1
Priority Queues It is a variant of queues Each item has an associated priority value. When inserting an item in the queue, the priority value is also provided for it. The data structure provides a method
More informationCourse Review. Cpt S 223 Fall 2010
Course Review Cpt S 223 Fall 2010 1 Final Exam When: Thursday (12/16) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program
More informationSchool of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3
Course Title: Date: 3/30/2010 Course Number: Number of Credits: 3 Subject Area: Programming Subject Area Coordinator: Tim Downey email: downeyt@cis.fiu.edu Catalog Description: Basic concepts of data organization,
More informationCS 310: Maps and Sets and Trees
CS 310: Maps and Sets and Trees Chris Kauman Week 8-2 Logistics Oce hours Wednesday normal: 4:30-5:30pm Thursday 2-3pm special oce hours Reading Weiss Ch. 6 (Java Library Classes/Interfaces) 6.7 Sets,
More informationCourse Review. Cpt S 223 Fall 2009
Course Review Cpt S 223 Fall 2009 1 Final Exam When: Tuesday (12/15) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program
More informationCpt S 223 Fall Cpt S 223. School of EECS, WSU
Course Review Cpt S 223 Fall 2012 1 Final Exam When: Monday (December 10) 8 10 AM Where: in class (Sloan 150) Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes
More informationAdvanced Set Representation Methods
Advanced Set Representation Methods AVL trees. 2-3(-4) Trees. Union-Find Set ADT DSA - lecture 4 - T.U.Cluj-Napoca - M. Joldos 1 Advanced Set Representation. AVL Trees Problem with BSTs: worst case operation
More informationEXAMINATIONS 2016 TRIMESTER 2
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2016 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
More informationCOMP 250. Lecture 32. interfaces. (Comparable, Iterable & Iterator) Nov. 22/23, 2017
COMP 250 Lecture 32 interfaces (Comparable, Iterable & Iterator) Nov. 22/23, 2017 1 Java Comparable interface Suppose you want to define an ordering on objects of some class. Sorted lists, binary search
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 Equivalence Relations A equivalence relation R is defined on a set S, if for every pair of elements (a,b) in S, a R b is either false or true
More informationEXAMINATIONS 2011 Trimester 2, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2011 Trimester 2, MID-TERM TEST COMP103 Introduction
More informationData Structure. A way to store and organize data in order to support efficient insertions, queries, searches, updates, and deletions.
DATA STRUCTURES COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges book. Data
More informationSOLUTIONS. COMP103 Introduction to Data Structures and Algorithms
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2011 MID YEAR COMP103 Introduction to Data
More informationBucket Sort Puzzlers. 08 A: Sorting IV. CS1102S: Data Structures and Algorithms. Martin Henz. March 12, 2010
08 A: Sorting IV CS1102S: Data Structures and Algorithms Martin Henz March 12, 2010 Generated on Friday 12 th March, 2010, 11:26 CS1102S: Data Structures and Algorithms 08 A: Sorting IV 1 1 2 CS1102S:
More informationCourse Review for Finals. Cpt S 223 Fall 2008
Course Review for Finals Cpt S 223 Fall 2008 1 Course Overview Introduction to advanced data structures Algorithmic asymptotic analysis Programming data structures Program design based on performance i.e.,
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 The Union-Find Data Structure Purpose: Great for disjoint sets Operations: Union ( S 1, S 2 ) Find ( x ) Performs a union of two disjoint sets
More informationPriority Queue. 03/09/04 Lecture 17 1
Priority Queue public interface PriorityQueue { public interface Position { Comparable getvalue( ); } Position insert( Comparable x ); Comparable findmin( ); Comparable deletemin( ); boolean isempty( );
More information07 B: Sorting II. CS1102S: Data Structures and Algorithms. Martin Henz. March 5, Generated on Friday 5 th March, 2010, 08:31
Recap: Sorting 07 B: Sorting II CS1102S: Data Structures and Algorithms Martin Henz March 5, 2010 Generated on Friday 5 th March, 2010, 08:31 CS1102S: Data Structures and Algorithms 07 B: Sorting II 1
More informationLecture 13: AVL Trees and Binary Heaps
Data Structures Brett Bernstein Lecture 13: AVL Trees and Binary Heaps Review Exercises 1. ( ) Interview question: Given an array show how to shue it randomly so that any possible reordering is equally
More informationCSC 321: Data Structures. Fall 2016
CSC 321: Data Structures Fall 2016 Balanced and other trees balanced BSTs: AVL trees, red-black trees TreeSet & TreeMap implementations heaps priority queue implementation heap sort 1 Balancing trees recall:
More informationCSC 321: Data Structures. Fall 2017
CSC 321: Data Structures Fall 2017 Balanced and other trees balanced BSTs: AVL trees, red-black trees TreeSet & TreeMap implementations heaps priority queue implementation heap sort 1 Balancing trees recall:
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 7. (A subset of) the Collections Interface. The Java Collections Interfaces
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 7 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 29, 2007 Last Time Practice Some Sorting Algs
More informationDisjoint Sets and the Union/Find Problem
Disjoint Sets and the Union/Find Problem Equivalence Relations A binary relation R on a set S is a subset of the Cartesian product S S. If (a, b) R we write arb and say a relates to b. Relations can have
More informationData Structures and Abstractions with Java
Global edition Data Structures and Abstractions with Java Fourth edition Frank M. Carrano Timothy M. Henry Data Structures and Abstractions with Java TM Fourth Edition Global Edition Frank M. Carrano University
More informationEXAMINATIONS 2017 TRIMESTER 2
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2017 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
More informationJava Collections. Readings and References. Collections Framework. Java 2 Collections. CSE 403, Spring 2004 Software Engineering
Readings and References Java Collections "Collections", Java tutorial http://java.sun.com/docs/books/tutorial/collections/index.html CSE 403, Spring 2004 Software Engineering http://www.cs.washington.edu/education/courses/403/04sp/
More informationThe Collections API. Lecture Objectives. The Collections API. Mark Allen Weiss
The Collections API Mark Allen Weiss Lecture Objectives To learn how to use the Collections package in Java 1.2. To illustrate features of Java that help (and hurt) the design of the Collections API. Tuesday,
More informationSorting and Searching
Sorting and Searching Lecture 2: Priority Queues, Heaps, and Heapsort Lecture 2: Priority Queues, Heaps, and Heapsort Sorting and Searching 1 / 24 Priority Queue: Motivating Example 3 jobs have been submitted
More informationReview: Trees Binary Search Trees Sets in Java Collections API CS1102S: Data Structures and Algorithms 05 A: Trees II
05 A: Trees II CS1102S: Data Structures and Algorithms Martin Henz February 10, 2010 Generated on Wednesday 10 th February, 2010, 10:54 CS1102S: Data Structures and Algorithms 05 A: Trees II 1 1 Review:
More informationDisjoint Sets. (Disjoint Sets) Data Structures and Programming Spring / 50
Disjoint Sets (Disjoint Sets) Data Structures and Programming Spring 2017 1 / 50 Making a Good Maze What s a Good Maze? Connected Just one path between any two rooms Random The Maze Construction Problem
More informationCollections Questions
Collections Questions https://www.journaldev.com/1330/java-collections-interview-questions-and-answers https://www.baeldung.com/java-collections-interview-questions https://www.javatpoint.com/java-collections-interview-questions
More informationWhat is the Java Collections Framework?
1 of 13 What is the Java Collections Framework? To begin with, what is a collection?. I have a collection of comic books. In that collection, I have Tarzan comics, Phantom comics, Superman comics and several
More informationSorting and Searching
Sorting and Searching Lecture 2: Priority Queues, Heaps, and Heapsort Lecture 2: Priority Queues, Heaps, and Heapsort Sorting and Searching 1 / 24 Priority Queue: Motivating Example 3 jobs have been submitted
More informationImplementing Hash and AVL
Implementing Hash and AVL Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Warm Up CSE 373 SP 18 - KASEY CHAMPION 2 Announcements 1. Go look at your HW 1 scores, seems a lot are missing
More informationCpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University
Cpt S 223 Course Overview 1 Course Goals Learn about new/advanced data structures Be able to make design choices on the suitable data structure for different application/problem needs Analyze (objectively)
More informationData & Procedure Priority queues
Data & Procedure Priority queues The Priority Queue ADT is designed for systems that maintaining a collection of prioritized elements, where elements are removed from the collection in order of their priority.
More informationAnnouncements. Hash Functions. Hash Functions 4/17/18 HASHING
Announcements Submit Prelim conflicts by tomorrow night A7 Due FRIDAY A8 will be released on Thursday HASHING CS110 Spring 018 Hash Functions Hash Functions 1 0 4 1 Requirements: 1) deterministic ) return
More informationImplementations. Priority Queues. Heaps and Heap Order. The Insert Operation CS206 CS206
Priority Queues An internet router receives data packets, and forwards them in the direction of their destination. When the line is busy, packets need to be queued. Some data packets have higher priority
More information27/04/2012. Objectives. Collection. Collections Framework. "Collection" Interface. Collection algorithm. Legacy collection
Objectives Collection Collections Framework Concrete collections Collection algorithm By Võ Văn Hải Faculty of Information Technologies Summer 2012 Legacy collection 1 2 2/27 Collections Framework "Collection"
More informationLecture Summary CSC 263H. August 5, 2016
Lecture Summary CSC 263H August 5, 2016 This document is a very brief overview of what we did in each lecture, it is by no means a replacement for attending lecture or doing the readings. 1. Week 1 2.
More informationCMSC 341 Lecture 20 Disjointed Sets
CMSC 341 Lecture 20 Disjointed Sets Prof. John Park Based on slides from previous iterations of this course Introduction to Disjointed Sets Disjoint Sets A data structure that keeps track of a set of elements
More informationImplementations III 1
Implementations III 1 Agenda Hash tables Implementation methods Applications Hashing vs. binary search trees The binary heap Properties Logarithmic-time operations Heap construction in linear time Java
More informationAnnouncements HEAPS & PRIORITY QUEUES. Abstract vs concrete data structures. Concrete data structures. Abstract data structures
Announcements A due TOMORROW. Late deadline is Sunday. A5 released. Due next Thursday. Deadline for Prelim 1 regrade requests is tomorrow. Remember to complete your TA evaluations by tonight. HEAPS & PRIORITY
More informationUNIT III BALANCED SEARCH TREES AND INDEXING
UNIT III BALANCED SEARCH TREES AND INDEXING OBJECTIVE The implementation of hash tables is frequently called hashing. Hashing is a technique used for performing insertions, deletions and finds in constant
More informationWhat is a minimal spanning tree (MST) and how to find one
What is a minimal spanning tree (MST) and how to find one A tree contains a root, the top node. Each node has: One parent Any number of children A spanning tree of a graph is a subgraph that contains all
More informationData Structure Lecture#14: Non-Binary Trees (Chapter 6) U Kang Seoul National University
Data Structure Lecture#14: Non-Binary Trees (Chapter 6) U Kang Seoul National University U Kang 1 In This Lecture The concept of the general tree, its ADT, and its operation Motivation and the main idea
More informationClass 32: The Java Collections Framework
Introduction to Computation and Problem Solving Class 32: The Java Collections Framework Prof. Steven R. Lerman and Dr. V. Judson Harward Goals To introduce you to the data structure classes that come
More informationInterfaces and Collections
Interfaces and Collections COMPSCI 2S03 Mikhail Andrenkov Department of Computing and Software McMaster University Week 9: November 14-18 Mikhail Andrenkov Interfaces and Collections 1 / 25 Outline 1 Interfaces
More informationCE 221 Data Structures and Algorithms
CE 2 Data Structures and Algorithms Chapter 6: Priority Queues (Binary Heaps) Text: Read Weiss, 6.1 6.3 Izmir University of Economics 1 A kind of queue Priority Queue (Heap) Dequeue gets element with the
More informationHeaps. 2/13/2006 Heaps 1
Heaps /13/00 Heaps 1 Outline and Reading What is a heap ( 8.3.1) Height of a heap ( 8.3.) Insertion ( 8.3.3) Removal ( 8.3.3) Heap-sort ( 8.3.) Arraylist-based implementation ( 8.3.) Bottom-up construction
More information182 review 1. Course Goals
Course Goals 182 review 1 More experience solving problems w/ algorithms and programs minimize static methods use: main( ) use and overload constructors multiple class designs and programming solutions
More informationCollections. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff
Collections by Vlad Costel Ungureanu for Learn Stuff Collections 2 Collections Operations Add objects to the collection Remove objects from the collection Find out if an object (or group of objects) is
More informationlecture24: Disjoint Sets
lecture24: Largely based on slides by Cinda Heeren CS 225 UIUC 22nd July, 2013 Announcements mp6 due tonight mp7 out soon! mt3 tomorrow night (7/23) Optional review instead of lab tomorrow Code Challenge
More informationCISC 3130 Data Structures Fall 2018
CISC 3130 Data Structures Fall 2018 Instructor: Ari Mermelstein Email address for questions: mermelstein AT sci DOT brooklyn DOT cuny DOT edu Email address for homework submissions: mermelstein DOT homework
More informationCOSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)
COSC 2007 Data Structures II Final Exam Thursday, April 13 th, 2006 This is a closed book and closed notes exam. There are total 3 parts. Please answer the questions in the provided space and use back
More informationCOMP : Trees. COMP20012 Trees 219
COMP20012 3: Trees COMP20012 Trees 219 Trees Seen lots of examples. Parse Trees Decision Trees Search Trees Family Trees Hierarchical Structures Management Directories COMP20012 Trees 220 Trees have natural
More information08 A: Sorting III. CS1102S: Data Structures and Algorithms. Martin Henz. March 10, Generated on Tuesday 9 th March, 2010, 09:58
08 A: Sorting III CS1102S: Data Structures and Algorithms Martin Henz March 10, 2010 Generated on Tuesday 9 th March, 2010, 09:58 CS1102S: Data Structures and Algorithms 08 A: Sorting III 1 1 Recap: Sorting
More informationTopics for CSCI 151 Final Exam Wednesday, May 10
Topics for CSCI 151 Final Exam Wednesday, May 10 Java and Programming Techniques Types Inheritance Generics Abstract classes and interfaces Exceptions Recursion Writing recursive methods Dynamic Programming
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 10: Search and Heaps MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Search and Heaps 2 Linear Search Binary Search Introduction to trees Priority Queues Heaps Linear Search
More informationMerge Sort Goodrich, Tamassia Merge Sort 1
Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2004 Goodrich, Tamassia Merge Sort 1 Review of Sorting Selection-sort: Search: search through remaining unsorted elements for min Remove: remove
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 12: Heaps and Priority Queues MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Heaps and Priority Queues 2 Priority Queues Heaps Priority Queue 3 QueueADT Objects are added and
More informationJava Collections Framework reloaded
Java Collections Framework reloaded October 1, 2004 Java Collections - 2004-10-01 p. 1/23 Outline Interfaces Implementations Ordering Java 1.5 Java Collections - 2004-10-01 p. 2/23 Components Interfaces:
More informationThe class Object. Lecture CS1122 Summer 2008
The class Object http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html Lecture 10 -- CS1122 Summer 2008 Review Object is at the top of every hierarchy. Every class in Java has an IS-A relationship
More informationN objects numbered 0, 1,, N 1, grouped into disjoint sets One member of a set chosen to be the label
CS 0 Theory of Algorithms Supplement Disjoint Set Structures Disjoint Set Structures N objects numbered 0, 1,, N 1, grouped into disjoint sets One member of a set chosen to be the label of the set Example:
More informationTopic #9: Collections. Readings and References. Collections. Collection Interface. Java Collections CSE142 A-1
Topic #9: Collections CSE 413, Autumn 2004 Programming Languages http://www.cs.washington.edu/education/courses/413/04au/ If S is a subtype of T, what is S permitted to do with the methods of T? Typing
More informationNotes on access restrictions
Notes on access restrictions A source code file MyClass.java is a compilation unit and can contain at most one public class. Furthermore, if there is a public class in that file, it must be called MyClass.
More informationData Structures. Giri Narasimhan Office: ECS 254A Phone: x-3748
Data Structures Giri Narasimhan Office: ECS 254A Phone: x-3748 giri@cs.fiu.edu Motivation u Many applications where Items have associated priorities Job scheduling Long print jobs vs short ones; OS jobs
More information9/16/2010 CS Ananda Gunawardena
CS 15-121 Ananda Gunawardena A collection (sometimes called a container) is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve and manipulate data,
More informationCS Ananda Gunawardena
CS 15-121 Ananda Gunawardena A collection (sometimes called a container) is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve and manipulate data,
More informationEXAMINATIONS 2010 END YEAR. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2010 END YEAR COMP103 Introduction to Data
More informationPresentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015
Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Merge Sort 2015 Goodrich and Tamassia Merge Sort 1 Application: Internet Search
More informationModel Solutions. COMP 103: Test April, 2013
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 40 minutes
More informationLecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29
Lecture 13 Connectedness in graphs Spanning trees in graphs Finding a minimal spanning tree Time costs of graph problems and NP-completeness Finding a minimal spanning tree: Prim s and Kruskal s algorithms
More informationJava Data Structures Collections Framework BY ASIF AHMED CSI-211 (OBJECT ORIENTED PROGRAMMING)
Java Data Structures Collections Framework BY ASIF AHMED CSI-211 (OBJECT ORIENTED PROGRAMMING) What is a Data Structure? Introduction A data structure is a particular way of organizing data using one or
More informationComputational Applications in Nuclear Astrophysics using Java Java course Lecture 6
Computational Applications in Nuclear Astrophysics using Java Java course Lecture 6 Prepared for course 160410/411 Michael C. Kunkel m.kunkel@fz-juelich.de Materials taken from; docs.oracle.com Teach Yourself
More informationBinary heaps (chapters ) Leftist heaps
Binary heaps (chapters 20.3 20.5) Leftist heaps Binary heaps are arrays! A binary heap is really implemented using an array! 8 18 29 20 28 39 66 Possible because of completeness property 37 26 76 32 74
More informationMerge Sort fi fi fi 4 9. Merge Sort Goodrich, Tamassia
Merge Sort 7 9 4 fi 4 7 9 7 fi 7 9 4 fi 4 9 7 fi 7 fi 9 fi 9 4 fi 4 Merge Sort 1 Divide-and-Conquer ( 10.1.1) Divide-and conquer is a general algorithm design paradigm: Divide: divide the input data S
More informationEXAMINATIONS 2012 MID YEAR. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2012 MID YEAR COMP103 Introduction to Data
More informationCPS222 Lecture: Sets. 1. Projectable of random maze creation example 2. Handout of union/find code from program that does this
CPS222 Lecture: Sets Objectives: last revised April 16, 2015 1. To introduce representations for sets that can be used for various problems a. Array or list of members b. Map-based representation c. Bit
More informationHEAPS & PRIORITY QUEUES
HEAPS & PRIORITY QUEUES Lecture 13 CS2110 Spring 2018 Announcements 2 A4 goes out today! Prelim 1: regrades are open a few rubrics have changed No Recitations next week (Fall Break Mon & Tue) We ll spend
More informationAbstract Data Types Data Structure Grand Tour Java Collections.
Abstract Data Types Data Structure Grand Tour Java Collections http://gcc.gnu.org/onlinedocs/libstdc++/images/pbds_different_underlying_dss_1.png } Stacks and Queues Ideally, you have met with your partner
More informationFunctors. 01/23/03 Lecture 5 1
Functors A functor is an object with no data and a single method. Functors can be passed as parameters. Since these classes are very small, they are usually implemented as a Nested Class wherever they
More informationOutline. Disjoint set data structure Applications Implementation
Disjoint Data Sets Outline Disjoint set data structure Applications Implementation Data Structures for Disjoint Sets A disjoint-set data structure is a collection of sets S = {S 1 S k }, such that S i
More informationPrelim 2. CS 2110, November 20, 2014, 7:30 PM Extra Total Question True/False Short Answer
Prelim 2 CS 2110, November 20, 2014, 7:30 PM 1 2 3 4 5 Extra Total Question True/False Short Answer Complexity Induction Trees Graphs Extra Credit Max 20 10 15 25 30 5 100 Score Grader The exam is closed
More informationExternal Sorting. Why We Need New Algorithms
1 External Sorting All the internal sorting algorithms require that the input fit into main memory. There are, however, applications where the input is much too large to fit into memory. For those external
More informationDATA STRUCTURES AND PROBLEM SOLVING USING JAVA
DATA STRUCTURES AND PROBLEM SOLVING USING JAVA Second Edition MARK ALLEN WEISS Florida International University Addison Wesley Boston San Francisco New York London Toronto Sydney Tokyo Singapore Madrid
More informationRecall: Properties of B-Trees
CSE 326 Lecture 10: B-Trees and Heaps It s lunch time what s cookin? B-Trees Insert/Delete Examples and Run Time Analysis Summary of Search Trees Introduction to Heaps and Priority Queues Covered in Chapters
More informationSamples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements
Samples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements What s here? This table presents samples of evidence that address the curricular requirements for AP Computer Science AB.
More informationData Structures in Java. Session 18 Instructor: Bert Huang
Data Structures in Java Session 18 Instructor: Bert Huang http://www.cs.columbia.edu/~bert/courses/3134 Announcements Homework 4 due Homework 5 posted, due 11/24 Graph theory problems Programming: All-pairs
More informationAbstract Data Types Data Structure Grand Tour Java Collections.
Abstract Data Types Data Structure Grand Tour Java Collections http://gcc.gnu.org/onlinedocs/libstdc++/images/pbds_different_underlying_dss_1.png Stacks and Queues Hopefully you have met with your partner
More informationLists and Iterators. CSSE 221 Fundamentals of Software Development Honors Rose-Hulman Institute of Technology
Lists and Iterators CSSE 221 Fundamentals of Software Development Honors Rose-Hulman Institute of Technology Announcements Should be making progress on VectorGraphics. Should have turned in CRC cards,
More informationModel Solutions. COMP 103: Test May, 2013
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 45 minutes
More informationData Structures and Algorithm Analysis in C++
INTERNATIONAL EDITION Data Structures and Algorithm Analysis in C++ FOURTH EDITION Mark A. Weiss Data Structures and Algorithm Analysis in C++, International Edition Table of Contents Cover Title Contents
More informationAbstract Data Types Data Structure Grand Tour Java Collections.
Abstract Data Types Data Structure Grand Tour Java Collections http://gcc.gnu.org/onlinedocs/libstdc++/images/pbds_different_underlying_dss_1.png } Stacks and Queues Ideally, you have met with your partner
More informationCSC 207 (17fa) Practice Final Page 1 of 19. Practice Final
CSC 207 (17fa) Practice Final Page 1 of 19 Practice Final Like the midterms, the final is closed-book, closed technology. The examination period is 180 minutes. The final covers everything that we have
More information