What is the purpose of the bubble up operation in a heap insert?
The bubble up operation moves the newly inserted element up the heap to restore the heap property, ensuring the parent node is always smaller (min-heap) or larger (max-heap) than its children.
Click to reveal answer
beginner
In a min-heap, when does the bubble up operation stop during insertion?
It stops when the inserted element is greater than or equal to its parent or when it reaches the root of the heap.
Click to reveal answer
intermediate
What is the time complexity of the bubble up operation in a heap insert?
The time complexity is O(log n), where n is the number of elements in the heap, because the element may move up the height of the heap.
Click to reveal answer
beginner
Show the parent index formula used during bubble up in a heap stored as an array.
Parent index = (child index - 1) / 2 (integer division). This formula helps find the parent node to compare during bubble up.
Click to reveal answer
beginner
Why is bubble up necessary after inserting a new element at the end of the heap array?
Because inserting at the end may violate the heap property, bubble up fixes this by swapping the new element with its parent until the property is restored.
Click to reveal answer
What does the bubble up operation do in a heap insert?
ARemoves the smallest element
BAdds a new root node
CSorts the entire heap
DMoves the new element up to restore heap property
✗ Incorrect
Bubble up moves the newly inserted element up to maintain the heap property.
In a min-heap, when should bubble up stop?
AWhen the element is smaller than its parent
BWhen the element is larger or equal to its parent
CWhen the element reaches a leaf node
DWhen the heap is empty
✗ Incorrect
Bubble up stops when the inserted element is no longer smaller than its parent.
What is the parent index of a node at index 5 in a heap array?
A2
B3
C4
D1
✗ Incorrect
Parent index = (5 - 1) / 2 = 2.
What is the worst-case time complexity of bubble up in a heap insert?
AO(log n)
BO(n)
CO(1)
DO(n log n)
✗ Incorrect
Bubble up may move up the height of the heap, which is log n.
Where is the new element inserted before bubble up in a heap?
AIn the middle of the array
BAt the root
CAt the end of the array
DAt the left child of root
✗ Incorrect
New elements are inserted at the end of the heap array before bubble up.
Explain the bubble up process during a heap insert operation step-by-step.
Think about how the new element moves up the tree.
You got /4 concepts.
Describe how the parent index is calculated and why it is important in bubble up.
Consider the heap stored as an array.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of the bubble up operation during a heap insert?
easy
A. To restore the heap property by moving the new element up if it is smaller than its parent
B. To move the new element to the bottom of the heap
C. To remove the smallest element from the heap
D. To sort all elements in the heap
Solution
Step 1: Understand heap property
In a min-heap, every parent node is smaller than its children. When inserting, this property might break.
Step 2: Purpose of bubble up
The bubble up operation moves the newly inserted element up the tree if it is smaller than its parent, restoring the heap property.
Final Answer:
To restore the heap property by moving the new element up if it is smaller than its parent -> Option A
Quick Check:
Bubble up fixes heap order by moving smaller elements up [OK]
Hint: Bubble up moves smaller inserted element up to fix heap [OK]
Common Mistakes:
Thinking bubble up moves element down
Confusing bubble up with removing elements
Assuming bubble up sorts the entire heap
2. Which of the following C# code snippets correctly swaps two elements in an array during bubble up?
easy
A. int temp = heap[parent]; heap[parent] = heap[i]; heap[i] = temp;
B. heap[i] = heap[parent]; heap[parent] = heap[i];
C. heap[i] = heap[parent]; heap[parent] = heap[parent];
D. int temp = heap[i]; heap[i] = heap[parent]; heap[parent] = heap[i];
Solution
Step 1: Understand swapping logic
To swap two elements, store one in a temporary variable, assign the second to the first, then assign temp to the second.
Step 2: Check each option
int temp = heap[parent]; heap[parent] = heap[i]; heap[i] = temp; correctly stores heap[parent] in temp, then swaps heap[parent] and heap[i]. int temp = heap[i]; heap[i] = heap[parent]; heap[parent] = heap[i]; swaps incorrectly by storing heap[i] first.
Final Answer:
int temp = heap[parent]; heap[parent] = heap[i]; heap[i] = temp; -> Option A
Quick Check:
Swap uses temp variable correctly [OK]
Hint: Use temp variable to swap two array elements safely [OK]
Common Mistakes:
Overwriting one element before saving it
Swapping without temp variable causing data loss
Confusing indices in swap
3. Given a min-heap array: [2, 5, 8, 10, 15], what will be the heap array after inserting 1 and performing bubble up?
medium
A. [1, 2, 8, 10, 15, 5]
B. [1, 5, 2, 10, 15, 8]
C. [1, 2, 5, 10, 15, 8]
D. [2, 5, 8, 10, 15, 1]
Solution
Step 1: Insert 1 at the end
Insert 1 at index 5: [2, 5, 8, 10, 15, 1]
Step 2: Bubble up 1
Parent of index 5 is index 2 (value 8). Since 1 < 8, swap: [2, 5, 1, 10, 15, 8]. Now index 2's parent is index 0 (value 2). Since 1 < 2, swap again: [1, 5, 2, 10, 15, 8].
Final Answer:
[1, 2, 5, 10, 15, 8] -> Option C
Quick Check:
Bubble up swaps until heap property restored [OK]
Hint: Insert at end, swap with parent while smaller [OK]
Common Mistakes:
Not swapping enough times to restore heap
Swapping with wrong parent index
Inserting element at wrong position
4. Consider this bubble up code snippet in C# for a min-heap insert:
while (i > 0 && heap[i] < heap[(i - 1) / 2]) {
int temp = heap[i];
heap[i] = heap[(i - 1) / 2];
heap[(i - 1) / 2] = temp;
i = (i - 1) / 2;
}
What is the bug in this code?
medium
A. The parent index calculation is incorrect; it should be (i / 2) instead of (i - 1) / 2
B. No bug; the code correctly performs bubble up
C. The swap uses wrong indices; should swap with i + 1
D. The loop condition should use > instead of < for a min-heap
Solution
Step 1: Check parent index formula
Parent index in zero-based heap is (i - 1) / 2, which is correct.
Step 2: Check loop condition and swap
Loop continues while current element is smaller than parent, swapping them correctly. Indices used in swap are correct.
Final Answer:
No bug; the code correctly performs bubble up -> Option B
Quick Check:
Parent index and swap logic are correct [OK]
Hint: Parent index = (i-1)/2; swap if child smaller [OK]
Common Mistakes:
Using wrong parent index formula
Reversing comparison operator in condition
Swapping with wrong indices
5. You have a max-heap represented by the array [20, 15, 18, 8, 10, 5]. You insert 17 and perform bubble up. What is the final heap array?
hard
A. [20, 17, 18, 8, 10, 5, 15]
B. [20, 15, 17, 8, 10, 5, 18]
C. [20, 15, 18, 8, 10, 17, 5]
D. [20, 15, 18, 8, 10, 5, 17]
Solution
Step 1: Insert 17 at the end
Insert 17 at index 6: [20, 15, 18, 8, 10, 5, 17]
Step 2: Bubble up 17 in max-heap
Parent of index 6 is index 2 (value 18). Since 17 < 18, no swap needed. Heap remains [20, 15, 18, 8, 10, 5, 17].
Step 3: Verify parent index
Parent of 6 is (6-1)/2 = 2 (18). 17 < 18, so no swap for max-heap bubble up.
Step 4: Re-examine options
Options A and B show incorrect bubbling up (A swaps with wrong parent 15, B swaps with parent 18). Since 17 < 18, no swap. Heap stays [20, 15, 18, 8, 10, 5, 17] matching [20, 15, 18, 8, 10, 5, 17].
Final Answer:
[20, 15, 18, 8, 10, 5, 17] -> Option D
Quick Check:
Bubble up swaps only if child > parent in max-heap [OK]
Hint: In max-heap, bubble up if child > parent only [OK]
Common Mistakes:
Swapping when child is smaller than parent
Confusing max-heap with min-heap rules
Incorrect parent index calculation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.