Lecture 3. Recurrences / Heapsort

Similar documents
Comparisons. Θ(n 2 ) Θ(n) Sorting Revisited. So far we talked about two algorithms to sort an array of numbers. What is the advantage of merge sort?

Comparisons. Heaps. Heaps. Heaps. Sorting Revisited. Heaps. So far we talked about two algorithms to sort an array of numbers

Heapsort. Algorithms.

The Heap Data Structure

Heaps and Priority Queues

Lecture 5: Sorting Part A

Heapsort. Heap data structure

Chapter 6 Heap and Its Application

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya

Introduction to Algorithms 3 rd edition

403: Algorithms and Data Structures. Heaps. Fall 2016 UAlbany Computer Science. Some slides borrowed by David Luebke

Partha Sarathi Manal

Properties of a heap (represented by an array A)

Algorithms and Data Structures

Heaps, Heapsort, Priority Queues

Algorithms, Spring 2014, CSE, OSU Lecture 2: Sorting

Data Structures and Algorithms. Roberto Sebastiani

Data Structures and Algorithms Week 4

CS 303 Design and Analysis of Algorithms

A data structure and associated algorithms, NOT GARBAGE COLLECTION

Lecture: Analysis of Algorithms (CS )

Data Structures and Algorithms Chapter 4

CSE 3101: Introduction to the Design and Analysis of Algorithms. Office hours: Wed 4-6 pm (CSEB 3043), or by appointment.

Next. 1. Covered basics of a simple design technique (Divideand-conquer) 2. Next, more sorting algorithms.

Plotting run-time graphically. Plotting run-time graphically. CS241 Algorithmics - week 1 review. Prefix Averages - Algorithm #1

Basic Data Structures and Heaps

1. Covered basics of a simple design technique (Divideand-conquer) 2. Next, more sorting algorithms.

Tirgul 4. Order statistics. Minimum & Maximum. Order Statistics. Heaps. minimum/maximum Selection. Overview Heapify Build-Heap

CSE5311 Design and Analysis of Algorithms. Administrivia Introduction Review of Basics IMPORTANT

CPSC 311 Lecture Notes. Sorting and Order Statistics (Chapters 6-9)

Topic: Heaps and priority queues

Partha Sarathi Mandal

HEAP. Michael Tsai 2017/4/25

BM267 - Introduction to Data Structures

CS 241 Analysis of Algorithms

The divide-and-conquer paradigm involves three steps at each level of the recursion: Divide the problem into a number of subproblems.

CSCE 750, Fall 2002 Notes 2 Page Bubble Sort // sort the array `a[*]' of length `count' // perform only the first `howmany' sort steps // keep t

Priority Queues and Heaps. Heaps of fun, for everyone!

Lecture 1. Introduction / Insertion Sort / Merge Sort

EECS 2011M: Fundamentals of Data Structures

Sorting Shabsi Walfish NYU - Fundamental Algorithms Summer 2006

Heaps. Heapsort. [Reading: CLRS 6] Laura Toma, csci2000, Bowdoin College

CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics

Definition of a Heap. Heaps. Priority Queues. Example. Implementation using a heap. Heap ADT

Overview of Presentation. Heapsort. Heap Properties. What is Heap? Building a Heap. Two Basic Procedure on Heap

How much space does this routine use in the worst case for a given n? public static void use_space(int n) { int b; int [] A;

1 Interlude: Is keeping the data sorted worth it? 2 Tree Heap and Priority queue

Data structures. Organize your data to support various queries using little time and/or space

arxiv: v3 [cs.ds] 18 Apr 2011

Questions from the material presented in this lecture

Priority Queues, Heaps, and Heapsort

EST Solutions. Ans 1(a): KMP Algorithm for Preprocessing: KMP Algorithm for Searching:

9. Heap : Priority Queue

T(n) = expected time of algorithm over all inputs of size n. half the elements in A[1.. j 1] are less than A[ j ], and half the elements are greater.

Deliverables. Quick Sort. Randomized Quick Sort. Median Order statistics. Heap Sort. External Merge Sort

Solutions. (a) Claim: A d-ary tree of height h has at most 1 + d +...

quiz heapsort intuition overview Is an algorithm with a worst-case time complexity in O(n) data structures and algorithms lecture 3

COE428 Lecture Notes Week 1 (Week of January 9, 2017)

Sorting & Growth of Functions

Collection of priority-job pairs; priorities are comparable.

Chapter 6 Heapsort 1

Algorithms Lab 3. (a) What is the minimum number of elements in the heap, as a function of h?

Lecture 6: Analysis of Algorithms (CS )

Sorting and Searching

Computational Optimization ISE 407. Lecture 16. Dr. Ted Ralphs

The priority is indicated by a number, the lower the number - the higher the priority.

Lower Bound on Comparison-based Sorting

Comparison Based Sorting Algorithms. Algorithms and Data Structures: Lower Bounds for Sorting. Comparison Based Sorting Algorithms

Sorting and Searching

We will show that the height of a RB tree on n vertices is approximately 2*log n. In class I presented a simple structural proof of this claim:

Algorithms and Data Structures: Lower Bounds for Sorting. ADS: lect 7 slide 1

Design and Analysis of Algorithms

Lower bound for comparison-based sorting

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

II (Sorting and) Order Statistics

Week 10. Sorting. 1 Binary heaps. 2 Heapification. 3 Building a heap 4 HEAP-SORT. 5 Priority queues 6 QUICK-SORT. 7 Analysing QUICK-SORT.

Heaps. 2/13/2006 Heaps 1

8 SortinginLinearTime

Midterm solutions. n f 3 (n) = 3

CSci 231 Final Review

Lecture 2: Getting Started

CS2 Algorithms and Data Structures Note 6

Module 2: Classical Algorithm Design Techniques

CSE 241 Class 17. Jeremy Buhler. October 28, Ordered collections supported both, plus total ordering operations (pred and succ)

Week 10. Sorting. 1 Binary heaps. 2 Heapification. 3 Building a heap 4 HEAP-SORT. 5 Priority queues 6 QUICK-SORT. 7 Analysing QUICK-SORT.

1 Tree Sort LECTURE 4. OHSU/OGI (Winter 2009) ANALYSIS AND DESIGN OF ALGORITHMS

Outline. Computer Science 331. Heap Shape. Binary Heaps. Heap Sort. Insertion Deletion. Mike Jacobson. HeapSort Priority Queues.

Multi-Way Search Trees

Recurrences and Divide-and-Conquer

CSC Design and Analysis of Algorithms. Lecture 8. Transform and Conquer II Algorithm Design Technique. Transform and Conquer

7. Sorting I. 7.1 Simple Sorting. Problem. Algorithm: IsSorted(A) 1 i j n. Simple Sorting

Sorting. Popular algorithms: Many algorithms for sorting in parallel also exist.

Lecture: Analysis of Algorithms (CS )

UNIVERSITY REGULATIONS

CS420/520 Algorithm Analysis Spring 2010 Lecture 09

Unit 1 Basics of Algorithms and Mathematics. Computer Engineering

O(n): printing a list of n items to the screen, looking at each item once.

Computer Science 210 Data Structures Siena College Fall Topic Notes: Priority Queues and Heaps

COMP 250 Fall priority queues, heaps 1 Nov. 9, 2018

Transcription:

Lecture 3. Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2017 Networking Laboratory

Overview for Recurrences Define what a recurrence is Discuss three methods of solving recurrences Substitution method Recursion-tree method Master method Examples of each method Algorithms Networking Laboratory 2/82

Definition A recurrence is an equation or inequality that describes a function in terms of its value on smaller inputs. Example from MERGE-SORT T(n) = (1) if n=1 2T(n/2) + (n) if n>1 Algorithms Networking Laboratory 3/82

Technicalities Normally, independent variables only assume integral values Example from MERGE-SORT revisited T(n) = (1) if n=1 T( n/2 ) + T( n/2 ) + (n) if n>1 For simplicity, ignore floors and ceilings often insignificant Algorithms Networking Laboratory 4/82

Technicalities Boundary conditions (small n) are also glossed over T(n) = 2T(n/2) + (n) Value of T(n) assumed to be small constant for small n Algorithms Networking Laboratory 5/82

Substitution Method Involves two steps: Drawback Guess the form of the solution Use mathematical induction to find the constants and show the solution works Applied only in cases where it is easy to guess at solution Useful in estimating bounds on true solution even if latter is unidentified Algorithms Networking Laboratory 6/82

Substitution Method Example: T(n) = 2T( n/2 ) + n Guess: T(n) = O(n lg n) Prove by induction: T(n) cn lg n for suitable c>0. Algorithms Networking Laboratory 7/82

Inductive Proof We ll not worry about the basis case for the moment we ll choose this as needed clearly we have: T(1) = (1) cn lg n Inductive hypothesis: For values of n < k the inequality holds, i.e., T(n) cn lg n We need to show that this holds for n = k as well. Algorithms Networking Laboratory 8/82

Inductive Proof In particular, for n = k/2, the inductive hypothesis should hold, i.e., T( k/2 ) c k/2 lg k/2 The recurrence gives us: T(k) = 2T( k/2 ) + k Substituting the inequality above yields: T(k) 2[c k/2 lg k/2 ] + k Algorithms Networking Laboratory 9/82

Inductive Proof Because of the non-decreasing nature of the functions involved, we can drop the floors and obtain: T(k) 2[c (k/2) lg (k/2)] + k Which simplifies to: T(k) ck (lg k lg 2) + k Or, since lg 2 = 1, we have: T(k) ck lg k ck + k = ck lg k + (1 c)k So if c 1, T(k) ck lg k Q.E.D. Algorithms Networking Laboratory 10/82

Practice Problems Use the substitution method to show that T ( n) 7T ( n / 3) n T (1) 1 2 T( n) O( n 2 ) Algorithms Networking Laboratory 11/82

Recursion-Tree Method Straightforward technique of coming up with a good guess Can help the Substitution Method Recursion tree: visual representation of recursive call hierarchy where each node represents the cost of a single subproblem Algorithms Networking Laboratory 12/82

Recursion-Tree Method T(n) = 3T( n/4 ) + (n 2 ) Algorithms Networking Laboratory 13/82

Recursion-Tree Method T(n) = 3T( n/4 ) + (n 2 ) Algorithms Networking Laboratory 14/82

Recursion-Tree Method T(n) = 3T( n/4 ) + (n 2 ) Algorithms Networking Laboratory 15/82

Recursion-Tree Method T(n) = 3T( n/4 ) + (n 2 ) Algorithms Networking Laboratory 16/82

Recursion-Tree Method Gathering all the costs together: log T(n) = 4 n 1 (3/16) i cn 2 + (n log 43 ) i=0 T(n) i=0 (3/16) i cn 2 + o(n) T(n) (1/(1 3/16))cn 2 + o(n) T(n) (16/13)cn 2 + o(n) T(n) = O(n 2 ) Algorithms Networking Laboratory 17/82

Recursion-Tree Method T(n) = T(n/3) + T(2n/3) + O(n) Algorithms Networking Laboratory 18/82

Recursion-Tree Method An overestimate of the total cost: Counter-indications: log T(n) = 3/2 n 1 cn + (n log 3/22 ) i=0 T(n) = O(n lg n) + (n lg n) Notwithstanding this, use as guess : T(n) = O(n lg n) Algorithms Networking Laboratory 19/82

Substitution Method Recurrence: T(n) = T(n/3) + T(2n/3) + cn Guess: T(n) = O(n lg n) Prove by induction: T(n) dn lg n for suitable d>0 (we already use c) Algorithms Networking Laboratory 20/82

Inductive Proof Again, we ll not worry about the basis case Inductive hypothesis: For values of n < k the inequality holds, i.e., T(n) dn lg n We need to show that this holds for n = k as well. In particular, for n = k/3, and n = 2k/3, the inductive hypothesis should hold Algorithms Networking Laboratory 21/82

Inductive Proof That is T(k/3) d k/3 lg k/3 T(2k/3) d 2k/3 lg 2k/3 The recurrence gives us: T(k) = T(k/3) + T(2k/3) + ck Substituting the inequalities above yields: T(k) [d (k/3) lg (k/3)] + [d (2k/3) lg (2k/3)] + ck Algorithms Networking Laboratory 22/82

Inductive Proof Expanding, we get T(k) [d (k/3) lg k d (k/3) lg 3] + [d (2k/3) lg k d (2k/3) lg(3/2)] + ck Rearranging, we get: T(k) dk lg k d[(k/3) lg 3 + (2k/3) lg(3/2)] + ck T(k) dk lg k dk[lg 3 2/3] + ck When d c/(lg3 (2/3)), we should have the desired: T(k) dk lg k Algorithms Networking Laboratory 23/82

Practice Problems Use the recursion tree method to show that T( n) T( n/ 4) T( n/ 2) n 2 T( n) ( n 2 ) Algorithms Networking Laboratory 24/82

Master Method Provides a cookbook method for solving recurrences Recurrence must be of the form: T(n) = at(n/b) + f(n) where a 1 and b>1 are constants and asymptotically positive function. f(n) is an Algorithms Networking Laboratory 25/82

Master Method Theorem 4.1: Given the recurrence previously defined, we have: 1. If f(n) = O(n logba ) for some constant >0, then T(n) = (n logba ) 2. If f(n) = (n logba ), then T(n) = (n logba lg n) Algorithms Networking Laboratory 26/82

Master Method 3. If f(n) = (n logba+ ) for some constant >0, and if af(n/b) cf(n) for some constant c<1 and all sufficiently large n, then T(n) = (f(n)) Algorithms Networking Laboratory 27/82

Example Estimate bounds on the following recurrence: Use the recursion tree method to arrive at a guess then verify using induction Point out which case in the Master Method this falls in Algorithms Networking Laboratory 28/82

Recursion Tree Recurrence produces the following tree: Algorithms Networking Laboratory 29/82

Cost Summation Collecting the level-by-level costs: A geometric series with base less than one; converges to a finite sum, hence, T(n) = (n 2 ) Algorithms Networking Laboratory 30/82

Exact Calculation If an exact solution is preferred: Using the formula for a partial geometric series: Algorithms Networking Laboratory 31/82

Exact Calculation Solving further: Algorithms Networking Laboratory 32/82

Master Theorem (Simplified) Algorithms Networking Laboratory 33/82

Practice Problems Use Master theorem to find asymptotic bound. a. T( n) 4T ( n/ 2) n b. T( n) 4T ( n/ 2) n 2 c. T( n) 4T ( n/ 2) n 3 Algorithms Networking Laboratory 34/82

Introduction for Heapsort Heapsort Running time: O(n lg n) Like merge sort Sorts in place: only a constant number of array elements are stored outside the input array at any time Heap Like insertion sort A data structure used by Heapsort to manage information during the execution of the algorithm Can be used as an efficient priority queue Algorithms Networking Laboratory 35/82

Perfect Binary Tree For binary tree with height h All nodes at levels h 1 or less have 2 children (full) h = 0 h = 1 h = 2 h = 3 Algorithms Networking Laboratory 36/82

Complete Binary Trees For binary tree with height h All nodes at levels h 2 or less have 2 children (full) All leaves on level h are as far left as possible h = 0 h = 2 h = 1 Algorithms Networking Laboratory 37/82

Complete Binary Trees h = 3 Algorithms Networking Laboratory 38/82

Heaps Two key properties Complete binary tree Value at node Smaller than or equal to values in subtrees Greater than or equal to values in subtrees Example max-heap Y X Z X X Y Z Algorithms Networking Laboratory 39/82

Heap and Non-heap Examples 5 5 5 45 8 6 45 5 2 2 6 22 6 22 6 22 25 8 45 25 8 45 25 Min-heaps Non-heaps Algorithms Networking Laboratory 40/82

Binary Heap An array object that can be viewed as a nearly complete binary tree Each tree node corresponds to an array element that stores the value in the tree node The tree is completely filled on all levels except possibly the lowest, which is filled from the left up to a point A has two attributes length[a]: number of elements in the array heap-size[a]: number of elements in the heap stored within A heap-size[a] length[a] max-heap and min-heap Algorithms Networking Laboratory 41/82

A Max-heap Algorithms Networking Laboratory 42/82

Length and Heap-Size 11 7 11 7 Length = 10 Heap-Size = 7 Algorithms Networking Laboratory 43/82

Heap Computation Given the index i of a node, the indices of its parent, left child, and right child can be computed simply: PARENT ( i) : return LEFT( i) : return 2i RIGHT( i) : return 2i 1 i / 2 Algorithms Networking Laboratory 44/82

0 1 2 Heap Computation 14 8 7 1 16 2 3 10 4 5 6 7 9 3 parent(i) = floor(i/2) left-child(i) = 2i right-child(i)= 2i +1 3 8 9 10 2 4 1 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 Algorithms Networking Laboratory 45/82

Heap Property Heap property The property that the values in the node must satisfy Max-heap property, for every node i other than the root A[PARENT(i)] A[i] The value of a node is at most the value of its parent The largest element in a max-heap is stored at the root The subtree rooted at a node contains values on larger than that contained at the node itself Algorithms Networking Laboratory 46/82

Heap Height The height of a node in a heap The number of edges on the longest simple downward path from the node to a leaf The height of a heap is the height of its root The height of a heap of n elements is (lg n) Exercise 6.1-2 on page 129 Algorithms Networking Laboratory 47/82

Heap Procedures MAX-HEAPIFY Maintains the max-heap property O(lg n) BUILD-MAX-HEAP Produces a max-heap from an unordered input array O(n) HEAPSORT Sorts an array in place O(n lg n) Algorithms Networking Laboratory 48/82

Maintaining the Heap Property MAX-HEAPIFY Inputs: an array A and an index i into the array Assume the binary tree rooted at LEFT(i) and RIGHT(i) are max-heaps, but A[i] may be smaller than its children violate the max-heap property MAX-HEAPIFY let the value at A[i] floats down in the max-heap Algorithms Networking Laboratory 49/82

Example of MAX-HEAPIFY 16 4 < 14 4 10 14 7 9 3 2 8 1 Algorithms Networking Laboratory 50/82

Example of MAX-HEAPIFY 16 14 4 7 4 < 8 10 9 3 2 8 1 Algorithms Networking Laboratory 51/82

Example of MAX-HEAPIFY 16 14 8 7 10 9 3 2 4 1 Algorithms Networking Laboratory 52/82

MAX-HEAPIFY Extract the indices of LEFT and RIGHT children of i Choose the largest of A[i], A[l], A[r] Float down A[i] recursively Algorithms Networking Laboratory 53/82

MAX-HEAPIFY Interactive version Recursive version Algorithms Networking Laboratory 54/82

Running Time of MAX-HEAPIFY (1) to find out the largest among A[i], A[LEFT(i)], and A[RIGHT(i)] Plus the time to run MAX-HEAPIFY on a subtree rooted at one of the children of node i The children s subtrees each have size at most 2n/3 (why?) the worst case occurs when the last row of the tree is exactly half full T(n) T(2n/3) + (1) By case 2 of the master theorem T(n) = O(lg n) 7/11 = 0.63 Algorithms Networking Laboratory 55/82

Heapify Example Algorithms Networking Laboratory 56/82

Building a Max-Heap Observation: A[( n/2 +1)..n] are all leaves of the tree Exercise 6.1-7 on page 130 Each is a 1-element heap to begin with Upper bound on the running time O(lg n) for each call to MAX-HEAPIFY, and call n times O(n lg n) Not tight Algorithms Networking Laboratory 57/82

Building a Max-Heap Algorithms Networking Laboratory 58/82

Loop Invariant At the start of each iteration of the for loop of lines 2-3, each node i+1, i+2,.., n is the root of a max-heap Initialization: Prior to the first iteration of the loop, i = n/2. Each node n/2 +1, n/2 +2,.., n is a leaf and the root of a trivial max-heap. Maintenance: Observe that the children of node i are numbered higher than i. By the loop invariant, therefore, they are both roots of max-heaps. This is precisely the condition required for the call MAX-HEAPIFY(A, i) to make node i a max-heap root. Moreover, the MAX-HEAPIFY call preserves the property that nodes i+1, i+2,, n are all roots of max-heaps. Decrementing i in the for loop update reestablishes the loop invariant for the next iteration. Termination: At termination, i=0. By the loop invariant, each node 1, 2,, n is the root of a max-heap. In particular, node 1 is. Algorithms Networking Laboratory 59/82

Cost for Build-MAX-HEAP Heap-properties of an n-element heap Height = lg n At most n/2 h+1 nodes of any height h Exercise 6.3-3 on page 135 lg n lg n n h h O( h) O( n ) O( n ) O( ) h 0 h h 2 h 0 2 h 0 n 1 h 2 Ignore the constant ½ h 0 h h 2 1 2 (1 1 ) 2 2 2 x k kx 2 k 0 ( 1 x) (for x < 1) Algorithms Networking Laboratory 60/82

Heapsort Using BUILD-MAX-HEAP to build a max-heap on the input array A[1..n], where n=length[a] Put the maximum element, A[1], to A[n] Then discard node n from the heap by decrementing heap-size(a) A[2..n-1] remain max-heaps, but A[1] may violate call MAX-HEAPIFY(A, 1) to restore the max-heap property for A[1..n-1] Repeat the above process from n down to 2 Cost: O(n lg n) BUILD-MAX-HEAP: O(n) Each of the n-1 calls to MAX-HEAPIFY takes time O(lg n) Algorithms Networking Laboratory 61/82

Example: Heapsort 1 16 2 3 14 10 4 5 6 7 8 7 9 3 8 9 10 2 4 1 16 14 10 8 7 9 3 2 4 1 Algorithms Networking Laboratory 62/82

Example: Heapsort (2) 1 14 2 3 8 10 4 5 6 7 4 7 9 3 8 9 10 2 1 16 Algorithms Networking Laboratory 63/82

Example: Heapsort (3) 1 10 2 3 8 9 4 5 6 7 4 7 1 3 8 9 10 2 14 16 Algorithms Networking Laboratory 64/82

Example: Heapsort (4) 1 9 2 3 8 3 4 5 6 7 4 7 1 2 8 9 10 10 14 16 Algorithms Networking Laboratory 65/82

Example: Heapsort (5) 1 7 2 3 4 3 4 5 6 7 1 2 8 9 8 9 10 10 14 16 Algorithms Networking Laboratory 66/82

Example: Heapsort (6) 1 4 2 3 2 3 4 5 6 7 1 7 8 9 8 9 10 10 14 16 Algorithms Networking Laboratory 67/82

Example: Heapsort (7) 1 1 2 3 2 3 4 5 6 7 4 7 8 9 8 9 10 10 14 16 Algorithms Networking Laboratory 68/82

Example: Heapsort (8) 1 1 2 3 2 3 4 5 6 7 4 7 8 9 8 9 10 10 14 16 1 2 3 4 7 8 9 10 14 16 Algorithms Networking Laboratory 69/82

Heapsort Algorithm Algorithms Networking Laboratory 70/82

Heapsort Algorithm Algorithms Networking Laboratory 71/82

Heap & Heap Sort Algorithm Video Content An illustration of Heap and Heap Sort. Algorithms Networking Laboratory 72/82

Heap & Heap Sort Algorithm Algorithms Networking Laboratory 73/82

Priority Queues We can implement the priority queue ADT with a heap. The operations are: Max(S) returns the maximum element Extract-Max(S) remove and return the maximum element Insert(x,S) insert element x into S Increase-Key(S,x,k) increase x s value to k Algorithms Networking Laboratory 74/82

Extract-Max (1) Heap-Maximum(A) return A[1] O(lg n) Heap-Extract-Max(A) 1. if heapsize[a] < 1 2. then error heap underflow 3. max A[1] 4. A[1] A[heapsize[A]] 5. heapsize[a] heapsize[a] 1 6. Max-Heapify(A,1) 7. return max Algorithms Networking Laboratory 75/82

Increase-Key O(lg n) Heap-Increase-key(A, i, key) 1. if key < A[i] 2. then error new key smaller than existing one 3. A[i] key 4. while i > 1 and A[parent(i)] < A[i] 5. do Exchange(A[i], parent(a[i])) 6. i parent(i) Algorithms Networking Laboratory 76/82

Example: increase key (1) 1 16 2 3 14 10 4 5 6 7 8 7 9 3 8 9 10 2 4 1 increase 4 to 15 Algorithms Networking Laboratory 77/82

Example: increase key (2) 1 16 2 3 14 10 4 5 6 7 8 7 9 3 8 9 10 2 15 1 Algorithms Networking Laboratory 78/82

Example: increase key (3) 1 16 2 3 14 10 4 5 6 7 15 7 9 3 8 9 10 2 8 1 Algorithms Networking Laboratory 79/82

Example: increase key (4) 1 16 2 3 15 10 4 5 6 7 14 7 9 3 8 9 10 2 8 1 Algorithms Networking Laboratory 80/82

Insert-Max O(lg n) Heap-Insert-Max(A, key) 1. heapsize[a] heapsize[a] + 1 2. A[heapsize[A]] - 3. Heap-Increase-Key(A, heapsize[a], key) Algorithms Networking Laboratory 81/82

Practice Problems Show the resulting heap after insert 20 into the following heap Algorithms Networking Laboratory 82/82