Data Structures · Heaps, priority queues, and disjoint sets
`Bubble-Down`(A,i,n) is specified as follows on a 1-based array that is a complete…
Problem
`Bubble-Down`(\(A,i,n\)) is specified as follows on a 1-based array that is a complete binary tree. Let \(L\) and \(R\) be the left and right children of \(i\) (if they exist). If \(i\) has no child with a strictly smaller key than \(A[i]\), return. Otherwise let \(j\) be a child of \(i\) of minimum key (break ties toward the left child) and swap \(A[i]\) with \(A[j]\); then recurse (or iterate) at \(j\). Prove the following invariant: if every subtree rooted at a proper descendant of \(i\) is a min-heap, then after `Bubble-Down`(\(A,i,n\)) returns, the subtree rooted at \(i\) is a min-heap. Your proof must handle the cases of zero, one, and two children, and must argue that a swap cannot violate heap order at the parent of the original \(i\) (the parent is outside the subtree under consideration). Conclude that Floyd's `Build-Heap`, which calls `Bubble-Down` on nodes in decreasing index order, produces a min-heap.
Hint
The recursive step only fires when \(i\) is larger than a child; after the swap, \(i\) holds that smaller child and the hole has moved down.
Check your work
Work the problem yourself first. Then open it in Training to check your answer and read the full worked solution.
The answer check and full solution for this problem come with ProofAnvil Practice membership ($19 USD monthly). See membership. Or start with the free Data Structures sample problem: Try the free sample problem.
More Data Structures practice problems
- Let V be a dynamic array of n elements stored in a buffer of capacity c, with the…Abstract data types, representation, and invariants
- A ring buffer (circular array) of fixed capacity C≥ 1 stores a sequence of at most C…Abstract data types, representation, and invariants
- Let L be the doubly linked list with values [10, 20, 30, 40, 50], and let I be a…Arrays, linked structures, stacks, queues, and amortization
- Consider BST deletion of a node zSearch trees and balanced trees
- Let T be a BST whose nodes contain only key, left, and right fields (no parent…Search trees and balanced trees
- Consider a hash table T of size m = 11 that resolves collisions by chainingHash tables and probabilistic performance
- Throw n balls independently and uniformly into n binsHash tables and probabilistic performance
- The fat-node method of partial persistence stores, in each field of each node, a…Graph representations and traversals
- A duplicate minimum must sit on the min-stack, or one pop forgets the otherArrays, linked structures, stacks, queues, and amortization