Data Structures Fibonacci Heaps, Amortized Analysis


 Prudence Jones
 2 years ago
 Views:
Transcription
1 Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn
2 Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure: A Fibonacci heap consists of a collection of trees satisfying the min heap property. Variables:. : root of the tree containing the (a) minimum key. : circular, doubly linked, unordered list containing the roots of all trees. : number of nodes currently in Algorithm Theory, WS 2012/13 Fabian Kuhn 2
3 Trees in Fibonacci Heaps Structure of a single node : parent left key degree right child mark. : points to circular, doubly linked and unordered list of the children of.,. : pointers to siblings (in doubly linked list). : will be used later Advantages of circular, doubly linked lists: Deleting an element takes constant time Concatenating two lists takes constant time Algorithm Theory, WS 2012/13 Fabian Kuhn 3
4 Example Figure: Cormen et al., Introduction to Algorithms Algorithm Theory, WS 2012/13 Fabian Kuhn 4
5 Simple (Lazy) Operations Initialize Heap :.. Merge heaps and : concatenate root lists update. Insert element into : create new one node tree containing H merge heaps and Get minimum element of : return. Algorithm Theory, WS 2012/13 Fabian Kuhn 5
6 Operation Delete Min Delete the node with minimum key from and return its element: 1.. ; 2. if. 0 then 3. remove. from. ; 4. add.. (list) to. 5.. ; // Repeatedly merge nodes with equal degree in the root list // until degrees of nodes in the root list are distinct. // Determine the element with minimum key 6. return Algorithm Theory, WS 2012/13 Fabian Kuhn 6
7 Rank and Maximum Degree Ranks of nodes, trees, heap: Node : : degree of Tree : : rank (degree) of root node of Heap : : maximum degree of any node in Assumption ( : number of nodes in ): for a known function Algorithm Theory, WS 2012/13 Fabian Kuhn 7
8 Merging Two Trees Given: Heap ordered trees, with Assume: min key of min key of Operation, : Removes tree from root list and adds to child list of 1. Algorithm Theory, WS 2012/13 Fabian Kuhn 8
9 Consolidation of Root List Array pointing to find roots with the same rank: Consolidate: Time: 1. for 0to do null;. 2. while. null do 3. delete and return first element of. 4. while nulldo 5. ; 6. ; 7., Create new. and. Algorithm Theory, WS 2012/13 Fabian Kuhn 9
10 Operation Decrease Key Decrease Key, : (decrease key of node to new value ) 1. if. then return; 2.. ; update. ; 3. if... then return 4. repeat 5.. ; 6.. ; 7. ; 8. until.. ; 9. if. then. ; Algorithm Theory, WS 2012/13 Fabian Kuhn 10
11 Operation Cut( ) Operation. : Cuts s sub tree from its parent and adds to rootlist 1. if. then 2. // cut the link between and its parent ; 4. remove from.. (list) 5.. null; 6. add to Algorithm Theory, WS 2012/13 Fabian Kuhn 11
12 Decrease Key Example Green nodes are marked Decrease Key, Algorithm Theory, WS 2012/13 Fabian Kuhn 12
13 Fibonacci Heap Marks History of a node : is being linked to a node. a child of is cut. a second child of is cut. Hence, the boolean value. indicates whether node has lost a child since the last time was made the child of another node. Algorithm Theory, WS 2012/13 Fabian Kuhn 13
14 Cost of Delete Min & Decrease Key Delete Min: 1. Delete min. root and add. to. time: 1 2. Consolidate. time: length of. Step 2 can potentially be linear in (size of ) Decrease Key (at node ): 1. If new key parent key, cut sub tree of node time: 1 2. Cascading cuts up the tree as long as nodes are marked time: number of consecutive marked nodes Step 2 can potentially be linear in Exercises: Both operations can take time in the worst case! Algorithm Theory, WS 2012/13 Fabian Kuhn 14
15 Cost of Delete Min & Decrease Key Cost of delete min and decrease key can be Θ Seems a large price to pay to get insert and merge in 1 time Maybe, the operations are efficient most of the time? It seems to require a lot of operations to get a long rootlist and thus, an expensive consolidate operation In each decrease key operation, at most one node gets marked: We need a lot of decrease key operations to get an expensive decrease key operation Can we show that the average cost per operation is small? We can requires amortized analysis Algorithm Theory, WS 2012/13 Fabian Kuhn 15
16 Amortization Consider sequence,,, of operations (typically performed on some data structure ) : execution time of operation : total execution time The execution time of a single operation might vary within a large range (e.g., 1, ) The worst case overall execution time might still be small average execution time per operation might be small in the worst case, even if single operations can be expensive Algorithm Theory, WS 2012/13 Fabian Kuhn 16
17 Analysis of Algorithms Best case Worst case Average case Amortized worst case What it the average cost of an operation in a worst case sequence of operations? Algorithm Theory, WS 2012/13 Fabian Kuhn 17
18 Example: Binary Counter Incrementing a binary counter: determine the bit flip cost: Operation Counter Value Cost Algorithm Theory, WS 2012/13 Fabian Kuhn 18
19 Accounting Method Observation: Each increment flips exactly one 0 into a Idea: Have a bank account (with initial amount 0) Paying to the bank account costs Take money from account to pay for expensive operations Applied to binary counter: Flip from 0 to 1: pay 1 to bank account (cost: 2) Flip from 1 to 0: take 1 from bank account (cost: 0) Amount on bank account = number of ones We always have enough money to pay! Algorithm Theory, WS 2012/13 Fabian Kuhn 19
20 Accounting Method Op. Counter Cost To Bank From Bank Net Cost Credit Algorithm Theory, WS 2012/13 Fabian Kuhn 20
21 Potential Function Method Most generic and elegant way to do amortized analysis! But, also more abstract than the others State of data structure / system: (state space) Potential function : Operation : : actual cost of operation : state after execution of operation ( : initial state) Φ : potential after exec. of operation : amortized cost of operation : Algorithm Theory, WS 2012/13 Fabian Kuhn 21
22 Potential Function Method Operation : actual cost: amortized cost: Φ Φ Overall cost: Φ Φ Algorithm Theory, WS 2012/13 Fabian Kuhn 22
23 Binary Counter: Potential Method Potential function: : Clearly, Φ 0and Φ 0for all 0 Actual cost : 1 flip from 0 to 1 1flips from 1 to 0 Potential difference: Φ Φ Amortized cost: Φ Φ 2 Algorithm Theory, WS 2012/13 Fabian Kuhn 23
24 Back to Fibonacci Heaps Worst case cost of a single delete min or decrease key operation is Ω Can we prove a small worst case amortized cost for delete min and decrease key operations? Remark: Data structure that allows operations,, We say that operation has amortized cost if for every execution the total time is where is the number of operations of type Algorithm Theory, WS 2012/13 Fabian Kuhn 24,
25 Amortized Cost of Fibonacci Heaps Initialize heap, is empty, get min, insert, and merge have worst case cost Delete min has amortized cost Decrease key has amortized cost Starting with an empty heap, any sequence of operations with at most delete min operations has total cost (time). We will now need the marks Cost for Dijkstra: log Algorithm Theory, WS 2012/13 Fabian Kuhn 25
26 Fibonacci Heaps: Marks Cycle of a node: 1. Node is removed from root list and linked to a node. 2. Child node of is cut and added to root list. 3. Second child of is cut node is cut as well and moved to root list The boolean value. indicates whether node has lost a child since the last time was made the child of another node. 26 Algorithm Theory, WS 2012/13 Fabian Kuhn Winter term 11/12 26
27 Potential Function System state characterized by two parameters: : number of trees (length of. ) : number of marked nodes that are not in the root list Potential function: Example: , 2 Φ 11 Algorithm Theory, WS 2012/13 Fabian Kuhn 27
28 Actual Time of Operations Operations: initialize heap, is empty, insert, get min, merge actual time: 1 Normalize unit time such that,,,, 1 Operation delete min: Actual time: length of. Normalize unit time such that length of. Operation descrease key: Actual time: length of path to next unmarked ancestor Normalize unit time such that lengthof path to next unmarked ancestor Algorithm Theory, WS 2012/13 Fabian Kuhn 28
29 Amortized Times Assume operation is of type: initialize heap: actual time: 1, potential: Φ Φ 0 amortized time: Φ Φ 1 is empty, get min: actual time: 1, potential: Φ Φ (heap doesn t change) amortized time: Φ Φ 1 merge: Actual time: 1 combined potential of both heaps: Φ Φ amortized time: Φ Φ 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 29
30 Amortized Time of Insert Assume that operation is an insert operation: Actual time: 1 Potential function: remains unchanged (no nodes are marked or unmarked, no marked nodes are moved to the root list) grows by 1 (one element is added to the root list), Φ Φ 1 1 Amortized time: Algorithm Theory, WS 2012/13 Fabian Kuhn 30
31 Amortized Time of Delete Min Assume that operation is a delete min operation: Actual time:. Potential function : : changes from. to at most : (# of marked nodes that are not in the root list) no new marks if node is moved away from root list,. is set to false value of does not change!,. Φ Φ. Amortized Time: Algorithm Theory, WS 2012/13 Fabian Kuhn 31
32 Amortized Time of Decrease Key Assume that operation is a decrease key operation at node : Actual time: length of path to next unmarked ancestor Potential function : Assume, node and nodes,, are moved to root list,, are marked and moved to root list,. mark is set to true marked nodes go to root list, 1node gets newly marked grows by 1, grows by 1 and is decreased by 1, 1 Φ Φ Φ 3 Amortized time: Algorithm Theory, WS 2012/13 Fabian Kuhn 32
33 Complexities Fibonacci Heap Initialize Heap: Is Empty: Insert: Get Min: Delete Min: Decrease Key: amortized Merge (heaps of size and, ): How large can get? Algorithm Theory, WS 2012/13 Fabian Kuhn 33
34 Rank of Children Lemma: Consider a node of rank and let,, be the children of in the order in which they were linked to. Then, Proof:. Algorithm Theory, WS 2012/13 Fabian Kuhn 34
35 Size of Trees Fibonacci Numbers: 0, 1, 2: Lemma: In a Fibonacci heap, the size of the sub tree of a node with rank is at least. Proof: : minimum size of the sub tree of a node of rank Algorithm Theory, WS 2012/13 Fabian Kuhn 35
36 Size of Trees 1, 2, 2: 2 Claim about Fibonacci numbers: 0: 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 36
37 Size of Trees 1, 2, 2: 2, 1 Claim of lemma: Algorithm Theory, WS 2012/13 Fabian Kuhn 37
38 Size of Trees Lemma: In a Fibonacci heap, the size of the sub tree of a node with rank is at least. Theorem: The maximum rank of a node in a Fibonacci heap of size is at most. Proof: The Fibonacci numbers grow exponentially: For, we need nodes Algorithm Theory, WS 2012/13 Fabian Kuhn 38
39 Summary: Binomial and Fibonacci Heaps Binomial Heap Fibonacci Heap initialize insert get min delete min * decrease key * merge is empty amortized time Algorithm Theory, WS 2012/13 Fabian Kuhn 39
CS711008Z Algorithm Design and Analysis
CS711008Z Algorithm Design and Analysis Lecture 7 Binary heap, binomial heap, and Fibonacci heap 1 Dongbo Bu Institute of Computing Technology Chinese Academy of Sciences, Beijing, China 1 The slides were
More informationFull and Complete Binary Trees
Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full
More informationCSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.
Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure
More informationCpt S 223. School of EECS, WSU
Priority Queues (Heaps) 1 Motivation Queues are a standard mechanism for ordering tasks on a firstcome, firstserved basis However, some tasks may be more important or timely than others (higher priority)
More informationBinary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child
Binary Search Trees Data in each node Larger than the data in its left child Smaller than the data in its right child FIGURE 116 Arbitrary binary tree FIGURE 117 Binary search tree Data Structures Using
More informationA binary heap is a complete binary tree, where each node has a higher priority than its children. This is called heaporder property
CmSc 250 Intro to Algorithms Chapter 6. Transform and Conquer Binary Heaps 1. Definition A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called
More informationThe UnionFind Problem Kruskal s algorithm for finding an MST presented us with a problem in datastructure design. As we looked at each edge,
The UnionFind Problem Kruskal s algorithm for finding an MST presented us with a problem in datastructure design. As we looked at each edge, cheapest first, we had to determine whether its two endpoints
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationMultiWay Search Trees (B Trees)
MultiWay Search Trees (B Trees) Multiway Search Trees An mway search tree is a tree in which, for some integer m called the order of the tree, each node has at most m children. If n
More informationCSE Homework 1
CSE 00  Homework.8 (a) Give a precise expression for the minimum number of nodes in an AVL tree of height h. (b) What is the minimum number of nodes in an AVL tree of height? (a) Let S(h) be the minimum
More information5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
More informationQuestions 1 through 25 are worth 2 points each. Choose one best answer for each.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in
More informationData Structure [Question Bank]
Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:
More informationBinary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( BST) are of the form. P parent. Key. Satellite data L R
Binary Search Trees A Generic Tree Nodes in a binary search tree ( BST) are of the form P parent Key A Satellite data L R B C D E F G H I J The BST has a root node which is the only node whose parent
More informationPES Institute of TechnologyBSC QUESTION BANK
PES Institute of TechnologyBSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
More informationConverting a Number from Decimal to Binary
Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive
More information10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions  a conventional tool for handling a
More informationTrees. Tree Definitions: Let T = (V, E, r) be a tree. The size of a tree denotes the number of nodes of the tree.
Trees After lists (including stacks and queues) and hash tables, trees represent one of the most widely used data structures. On one hand trees can be used to represent objects that are recursive in nature
More informationUnordered Linked Lists
Unordered Linked Lists Derive class unorderedlinkedlist from the abstract class linkedlisttype Implement the operations search, insertfirst, insertlast, deletenode See code on page 292 Defines an unordered
More informationFrom Last Time: Remove (Delete) Operation
CSE 32 Lecture : More on Search Trees Today s Topics: Lazy Operations Run Time Analysis of Binary Search Tree Operations Balanced Search Trees AVL Trees and Rotations Covered in Chapter of the text From
More informationAS2261 M.Sc.(First Semester) Examination2013 Paper fourth SubjectData structure with algorithm
AS2261 M.Sc.(First Semester) Examination2013 Paper fourth SubjectData structure with algorithm Time: Three Hours] [Maximum Marks: 60 Note Attempts all the questions. All carry equal marks Section A
More information6 March 2007 1. Array Implementation of Binary Trees
Heaps CSE 0 Winter 00 March 00 1 Array Implementation of Binary Trees Each node v is stored at index i defined as follows: If v is the root, i = 1 The left child of v is in position i The right child of
More informationAnalysis of Algorithms I: Binary Search Trees
Analysis of Algorithms I: Binary Search Trees Xi Chen Columbia University Hash table: A data structure that maintains a subset of keys from a universe set U = {0, 1,..., p 1} and supports all three dictionary
More informationChapter 18 Indexing Structures for Files. Indexes as Access Paths
Chapter 18 Indexing Structures for Files Indexes as Access Paths A singlelevel index is an auxiliary file that makes it more efficient to search for a record in the data file. The index is usually specified
More informationAbstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types
EECS 281: Data Structures and Algorithms The Foundation: Data Structures and Abstract Data Types Computer science is the science of abstraction. Abstract Data Type Abstraction of a data structure on that
More informationTables so far. set() get() delete() BST Average O(lg n) O(lg n) O(lg n) Worst O(n) O(n) O(n) RB Tree Average O(lg n) O(lg n) O(lg n)
Hash Tables Tables so far set() get() delete() BST Average O(lg n) O(lg n) O(lg n) Worst O(n) O(n) O(n) RB Tree Average O(lg n) O(lg n) O(lg n) Worst O(lg n) O(lg n) O(lg n) Table naïve array implementation
More informationOutline BST Operations Worst case Average case Balancing AVL Redblack Btrees. Binary Search Trees. Lecturer: Georgy Gimel farb
Binary Search Trees Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 27 1 Properties of Binary Search Trees 2 Basic BST operations The worstcase time complexity of BST operations
More informationAlgorithms and Data Structures
Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. RalfPeter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2
More informationUNIVERSITI MALAYSIA SARAWAK KOTA SAMARAHAN SARAWAK PSD2023 ALGORITHM & DATA STRUCTURE
STUDENT IDENTIFICATION NO UNIVERSITI MALAYSIA SARAWAK 94300 KOTA SAMARAHAN SARAWAK FAKULTI SAINS KOMPUTER & TEKNOLOGI MAKLUMAT (Faculty of Computer Science & Information Technology) Diploma in Multimedia
More informationPrevious Lectures. BTrees. External storage. Two types of memory. Btrees. Main principles
BTrees Algorithms and data structures for external memory as opposed to the main memory BTrees Previous Lectures Height balanced binary search trees: AVL trees, redblack trees. Multiway search trees:
More informationMathematical Induction
Mathematical Induction Victor Adamchik Fall of 2005 Lecture 2 (out of three) Plan 1. Strong Induction 2. Faulty Inductions 3. Induction and the Least Element Principal Strong Induction Fibonacci Numbers
More information, each of which contains a unique key value, say k i , R 2. such that k i equals K (or to determine that no such record exists in the collection).
The Search Problem 1 Suppose we have a collection of records, say R 1, R 2,, R N, each of which contains a unique key value, say k i. Given a particular key value, K, the search problem is to locate the
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationThe Goldberg Rao Algorithm for the Maximum Flow Problem
The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }
More informationBalanced search trees
Lecture 8 Balanced search trees 8.1 Overview In this lecture we discuss search trees as a method for storing data in a way that supports fast insert, lookup, and delete operations. (Data structures handling
More informationKCover of Binary sequence
KCover of Binary sequence Prof Amit Kumar Prof Smruti Sarangi Sahil Aggarwal Swapnil Jain Given a binary sequence, represent all the 1 s in it using at most k covers, minimizing the total length of all
More informationCOT5405 Analysis of Algorithms Homework 3 Solutions
COT0 Analysis of Algorithms Homework 3 Solutions. Prove or give a counter example: (a) In the textbook, we have two routines for graph traversal  DFS(G) and BFS(G,s)  where G is a graph and s is any
More informationTwo General Methods to Reduce Delay and Change of Enumeration Algorithms
ISSN 13465597 NII Technical Report Two General Methods to Reduce Delay and Change of Enumeration Algorithms Takeaki Uno NII2003004E Apr.2003 Two General Methods to Reduce Delay and Change of Enumeration
More informationOrdered Lists and Binary Trees
Data Structures and Algorithms Ordered Lists and Binary Trees Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/62 60:
More informationSymbol Tables. IE 496 Lecture 13
Symbol Tables IE 496 Lecture 13 Reading for This Lecture Horowitz and Sahni, Chapter 2 Symbol Tables and Dictionaries A symbol table is a data structure for storing a list of items, each with a key and
More informationCMSC 451: Graph Properties, DFS, BFS, etc.
CMSC 451: Graph Properties, DFS, BFS, etc. Slides By: Carl Kingsford Department of Computer Science University of Maryland, College Park Based on Chapter 3 of Algorithm Design by Kleinberg & Tardos. Graphs
More informationCMPS 102 Solutions to Homework 1
CMPS 0 Solutions to Homework Lindsay Brown, lbrown@soe.ucsc.edu September 9, 005 Problem.. p. 3 For inputs of size n insertion sort runs in 8n steps, while merge sort runs in 64n lg n steps. For which
More informationData Structures and Algorithms Written Examination
Data Structures and Algorithms Written Examination 22 February 2013 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where
More information Easy to insert & delete in O(1) time  Don t need to estimate total memory needed.  Hard to search in less than O(n) time
Skip Lists CMSC 420 Linked Lists Benefits & Drawbacks Benefits:  Easy to insert & delete in O(1) time  Don t need to estimate total memory needed Drawbacks:  Hard to search in less than O(n) time (binary
More informationData Structures and Algorithms
Data Structures and Algorithms CS2452016S06 Binary Search Trees David Galles Department of Computer Science University of San Francisco 060: Ordered List ADT Operations: Insert an element in the list
More informationSample Problems in Discrete Mathematics
Sample Problems in Discrete Mathematics This handout lists some sample problems that you should be able to solve as a prerequisite to Computer Algorithms Try to solve all of them You should also read
More informationAnalysis of a Search Algorithm
CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,
More informationPersistent Binary Search Trees
Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents
More informationSymbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
More informationLearning Outcomes. COMP202 Complexity of Algorithms. Binary Search Trees and Other Search Trees
Learning Outcomes COMP202 Complexity of Algorithms Binary Search Trees and Other Search Trees [See relevant sections in chapters 2 and 3 in Goodrich and Tamassia.] At the conclusion of this set of lecture
More information1 23 Trees: The Basics
CS10: Data Structures and ObjectOriented Design (Fall 2013) November 1, 2013: 23 Trees: Inserting and Deleting Scribes: CS 10 Teaching Team Lecture Summary In this class, we investigated 23 Trees in
More informationLecture 7: Approximation via Randomized Rounding
Lecture 7: Approximation via Randomized Rounding Often LPs return a fractional solution where the solution x, which is supposed to be in {0, } n, is in [0, ] n instead. There is a generic way of obtaining
More informationBTrees. Algorithms and data structures for external memory as opposed to the main memory BTrees. B trees
BTrees Algorithms and data structures for external memory as opposed to the main memory BTrees Previous Lectures Height balanced binary search trees: AVL trees, redblack trees. Multiway search trees:
More informationGuessing Game: NPComplete?
Guessing Game: NPComplete? 1. LONGESTPATH: Given a graph G = (V, E), does there exists a simple path of length at least k edges? YES 2. SHORTESTPATH: Given a graph G = (V, E), does there exists a simple
More informationMultiway Search Tree (MST)
Multiway Search Tree (MST) Generalization of BSTs Suitable for disk MST of order n: Each node has n or fewer subtrees S1 S2. Sm, m n Each node has n1 or fewer keys K1 Κ2 Κm1 : m1 keys in ascending
More informationPriority Queues. Client, Implementation, Interface. Priority Queues. Abstract Data Types
Client, Implementation, Interface Priority Queues Priority Queue ADT Binary heaps Heapsort Reference: Chapter 6, Algorithms in Java, 3 rd Edition, Robert Sedgewick. Separate interface and implementation
More information1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.
1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. base address 2. The memory address of fifth element of an array can be calculated
More informationSection IV.1: Recursive Algorithms and Recursion Trees
Section IV.1: Recursive Algorithms and Recursion Trees Definition IV.1.1: A recursive algorithm is an algorithm that solves a problem by (1) reducing it to an instance of the same problem with smaller
More informationBalanced Binary Search Tree
AVL Trees / Slide 1 Balanced Binary Search Tree Worst case height of binary search tree: N1 Insertion, deletion can be O(N) in the worst case We want a tree with small height Height of a binary tree with
More informationKrishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA213 : DATA STRUCTURES USING C
Tutorial#1 Q 1: Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2: What is a Data Type? Differentiate
More informationTrees LOGO STYLE GUIDE Schools within the University 1 19
Trees 1 Example Tree 2 A Generic Tree 3 Tree ADT n Tree definition q A tree is a set of nodes which may be empty q If not empty, then there is a distinguished node r, called root and zero or more nonempty
More informationBinary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *
Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest
More informationComplexity of UnionSplitFind Problems. Katherine Jane Lai
Complexity of UnionSplitFind Problems by Katherine Jane Lai S.B., Electrical Engineering and Computer Science, MIT, 2007 S.B., Mathematics, MIT, 2007 Submitted to the Department of Electrical Engineering
More information1. What s wrong with the following proofs by induction?
ArsDigita University Month : Discrete Mathematics  Professor Shai Simonson Problem Set 4 Induction and Recurrence Equations Thanks to Jeffrey Radcliffe and Joe Rizzo for many of the solutions. Pasted
More informationClass Notes CS 3137. 1 Creating and Using a Huffman Code. Ref: Weiss, page 433
Class Notes CS 3137 1 Creating and Using a Huffman Code. Ref: Weiss, page 433 1. FIXED LENGTH CODES: Codes are used to transmit characters over data links. You are probably aware of the ASCII code, a fixedlength
More informationAlgorithms. Theresa MiglerVonDollen CMPS 5P
Algorithms Theresa MiglerVonDollen CMPS 5P 1 / 32 Algorithms Write a Python function that accepts a list of numbers and a number, x. If x is in the list, the function returns the position in the list
More informationData storage Tree indexes
Data storage Tree indexes Rasmus Pagh February 7 lecture 1 Access paths For many database queries and updates, only a small fraction of the data needs to be accessed. Extreme examples are looking or updating
More informationSequential Data Structures
Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year
More informationroot node level: internal node edge leaf node CS@VT Data Structures & Algorithms 20002009 McQuain
inary Trees 1 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the root, which are disjoint from each
More informationIntro. to the DivideandConquer Strategy via Merge Sort CMPSC 465 CLRS Sections 2.3, Intro. to and various parts of Chapter 4
Intro. to the DivideandConquer Strategy via Merge Sort CMPSC 465 CLRS Sections 2.3, Intro. to and various parts of Chapter 4 I. Algorithm Design and DivideandConquer There are various strategies we
More information4.4 The recursiontree method
4.4 The recursiontree method Let us see how a recursion tree would provide a good guess for the recurrence = 3 4 ) Start by nding an upper bound Floors and ceilings usually do not matter when solving
More informationAlgorithms Chapter 12 Binary Search Trees
Algorithms Chapter 1 Binary Search Trees Outline Assistant Professor: Ching Chi Lin 林 清 池 助 理 教 授 chingchi.lin@gmail.com Department of Computer Science and Engineering National Taiwan Ocean University
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given
More informationData Structures and Data Manipulation
Data Structures and Data Manipulation What the Specification Says: Explain how static data structures may be used to implement dynamic data structures; Describe algorithms for the insertion, retrieval
More informationPersistent Data Structures and Planar Point Location. Inge Li Gørtz
Persistent Data Structures and Planar Point Location Inge Li Gørtz Persistent Data Structures Ephemeral Partial persistence Full persistence Confluent persistence V1 V1 V1 V1 V2 q ue V2 V2 V5 V2 V4 V4
More information! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions
Chapter 13: Query Processing Chapter 13: Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions Basic Steps in Query
More informationAVL Trees. CSE 373 Data Structures
AVL Trees CSE 373 Data Structures Readings Reading Chapter 1 Section 1.2 AVL Trees 2 Binary Search Tree  Best Time All BST operations are O(d), where d is tree depth minimum d is = log N for a binary
More informationLecture 2: The Complexity of Some Problems
IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Basic Course on Computational Complexity Lecture 2: The Complexity of Some Problems David Mix Barrington and Alexis Maciel July 18, 2000
More informationDiscrete Mathematics (2009 Spring) Induction and Recursion (Chapter 4, 3 hours)
Discrete Mathematics (2009 Spring) Induction and Recursion (Chapter 4, 3 hours) ChihWei Yi Dept. of Computer Science National Chiao Tung University April 17, 2009 4.1 Mathematical Induction 4.1 Mathematical
More informationBinary Search Trees CMPSC 122
Binary Search Trees CMPSC 122 Note: This notes packet has significant overlap with the first set of trees notes I do in CMPSC 360, but goes into much greater depth on turning BSTs into pseudocode than
More informationHomework Exam 1, Geometric Algorithms, 2016
Homework Exam 1, Geometric Algorithms, 2016 1. (3 points) Let P be a convex polyhedron in 3dimensional space. The boundary of P is represented as a DCEL, storing the incidence relationships between the
More informationBinary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn G. Chappell
More informationSorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)
Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse
More informationSatisfiability Checking
Satisfiability Checking SATSolving Prof. Dr. Erika Ábrahám Theory of Hybrid Systems Informatik 2 WS 10/11 Prof. Dr. Erika Ábrahám  Satisfiability Checking 1 / 40 A basic SAT algorithm Assume the CNF
More informationSchool of Informatics, University of Edinburgh Computer Science 1 Ah [03 04]
School of Informatics, University of Edinburgh Computer Science 1 Ah [03 04] CS1Ah Lecture Note 25 Binary Search Trees This lecture studies binary trees in more detail, in particular their application
More informationCS112 Lecture: Searching and Sorting
CS112 Lecture: Searching and Sorting Objectives: 1. To introduce the linear search algorithm. 2. To introduce the binary search algorithm. 3. To show superiority of O(log n) vs O(n) 4. To take note of
More informationFindTheNumber. 1 FindTheNumber With Comps
FindTheNumber 1 FindTheNumber With Comps Consider the following twoperson game, which we call FindTheNumber with Comps. Player A (for answerer) has a number x between 1 and 1000. Player Q (for questioner)
More informationBalanced Binary Trees
Reminders about Trees Balanced Binary Trees With pictures by John Morris (ciips.ee.uwa.edu.au/~morris) A binary tree is a tree with exactly two subtrees for each node, called the left and right subtrees.
More informationTREE BASIC TERMINOLOGIES
TREE Trees are very flexible, versatile and powerful nonliner data structure that can be used to represent data items possessing hierarchical relationship between the grand father and his children and
More informationCSCI Trees. Mark Redekopp David Kempe
1 CSCI 104 23 Trees Mark Redekopp David Kempe 2 Properties, Insertion and Removal BINARY SEARCH TREES 3 Binary Search Tree Binary search tree = binary tree where all nodes meet the property that: All
More informationHeap. Binary Search Tree. Heaps VS BSTs. < el el. Difference between a heap and a BST:
Heaps VS BSTs Difference between a heap and a BST: Heap el Binary Search Tree el el el < el el Perfectly balanced at all times Immediate access to maximal element Easy to code Does not provide efficient
More informationInformation Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture  14 NonBinary Huffman Code and Other Codes In the last class we
More informationBinary Search Trees. Yes! So, a binary tree T is a binary search tree if T is a single node.
Which are Binary Search Trees (BST)? Binary Search Trees So, a binary tree T is a binary search tree if T is a single node. Yes! No! All the values on the left subtree must be less than the value at the
More informationGRAPH THEORY LECTURE 4: TREES
GRAPH THEORY LECTURE 4: TREES Abstract. 3.1 presents some standard characterizations and properties of trees. 3.2 presents several different types of trees. 3.7 develops a counting method based on a bijection
More informationStrategic Deployment in Graphs. 1 Introduction. v 1 = v s. v 2. v 4. e 1. e 5 25. e 3. e 2. e 4
Informatica 39 (25) 237 247 237 Strategic Deployment in Graphs Elmar Langetepe and Andreas Lenerz University of Bonn, Department of Computer Science I, Germany Bernd Brüggemann FKIE, FraunhoferInstitute,
More informationPlanar Tree Transformation: Results and Counterexample
Planar Tree Transformation: Results and Counterexample Selim G Akl, Kamrul Islam, and Henk Meijer School of Computing, Queen s University Kingston, Ontario, Canada K7L 3N6 Abstract We consider the problem
More informationCS104: Data Structures and ObjectOriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and ObjectOriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More informationChapter 4. Trees. 4.1 Basics
Chapter 4 Trees 4.1 Basics A tree is a connected graph with no cycles. A forest is a collection of trees. A vertex of degree one, particularly in a tree, is called a leaf. Trees arise in a variety of applications.
More informationProblem. Indexing with Btrees. Indexing. Primary Key Indexing. Btrees. Btrees: Example. primary key indexing
Problem Given a large collection of records, Indexing with Btrees find similar/interesting things, i.e., allow fast, approximate queries Anastassia Ailamaki http://www.cs.cmu.edu/~natassa 2 Indexing Primary
More informationOverview of Data Structures
UNIT 3 Concrete Data Types Classification of Data Structures Concrete vs. Abstract Data Structures Most Important Concrete Data Structures Arrays Records Linked Lists Binary Trees Overview of Data Structures
More information