What is the main idea behind the Bubble Sort algorithm?
Bubble Sort repeatedly compares adjacent elements and swaps them if they are in the wrong order, "bubbling" the largest unsorted element to the end in each pass.
Click to reveal answer
beginner
How many passes does Bubble Sort make in the worst case for an array of size n?
In the worst case, Bubble Sort makes n-1 passes through the array to fully sort it.
Click to reveal answer
intermediate
What is the time complexity of Bubble Sort in the average and worst cases?
The time complexity is O(n²) in both average and worst cases because it compares pairs repeatedly for each element.
Click to reveal answer
intermediate
How can Bubble Sort be optimized to stop early if the array is already sorted?
By adding a flag to check if any swaps happened in a pass; if no swaps occur, the array is sorted and the algorithm can stop early.
Click to reveal answer
beginner
Write the basic step of Bubble Sort comparing two adjacent elements a[i] and a[i+1].
If a[i] > a[i+1], swap a[i] and a[i+1] to move the larger element towards the end.
Click to reveal answer
What does Bubble Sort do in each pass through the array?
AMoves the smallest element to the start
BRemoves duplicates from the array
CSorts the entire array at once
DMoves the largest unsorted element to the end
✗ Incorrect
Bubble Sort compares adjacent elements and swaps them to move the largest unsorted element to the end in each pass.
What is the worst-case time complexity of Bubble Sort?
AO(n)
BO(n log n)
CO(n²)
DO(log n)
✗ Incorrect
Bubble Sort has a worst-case time complexity of O(n²) because it compares pairs repeatedly for each element.
Which of these is a way to optimize Bubble Sort?
AUse recursion instead of loops
BStop if no swaps happen in a pass
CSort only half the array
DSkip comparing adjacent elements
✗ Incorrect
If no swaps happen during a pass, the array is already sorted and Bubble Sort can stop early.
In Bubble Sort, what happens when two adjacent elements are in the wrong order?
AThey are swapped
BThey are removed
CThey are ignored
DThey are duplicated
✗ Incorrect
Bubble Sort swaps adjacent elements if they are in the wrong order to sort the array.
How many passes does Bubble Sort need to sort an array of 5 elements in the worst case?
A4
B6
C5
D3
✗ Incorrect
Bubble Sort needs n-1 passes, so for 5 elements, it needs 4 passes in the worst case.
Explain how Bubble Sort works step-by-step on a small array.
Think about how bubbles rise to the surface in water.
You got /4 concepts.
Describe one way to make Bubble Sort faster when the array is already mostly sorted.
How do you know if the array is sorted before finishing all passes?
You got /3 concepts.
Practice
(1/5)
1. What is the main idea behind the Bubble Sort algorithm?
easy
A. Repeatedly swap adjacent elements if they are in the wrong order
B. Divide the array into halves and sort each half separately
C. Select the smallest element and place it at the beginning
D. Insert each element into its correct position in a sorted sublist
Solution
Step 1: Understand Bubble Sort mechanism
Bubble Sort compares adjacent elements and swaps them if they are out of order.
Step 2: Compare with other sorting methods
Other options describe different algorithms: selection sort (A), divide and conquer (B), insertion sort (D).
Final Answer:
Repeatedly swap adjacent elements if they are in the wrong order -> Option A
Quick Check:
Bubble Sort = swapping adjacent pairs [OK]
Hint: Bubble Sort swaps neighbors repeatedly to sort [OK]
Common Mistakes:
Confusing Bubble Sort with Selection Sort
Thinking it divides the array like Merge Sort
Assuming it inserts elements like Insertion Sort
2. Which of the following is the correct syntax to swap two elements arr[i] and arr[i+1] in JavaScript during Bubble Sort?
easy
A. arr[i] = arr[i+1]; arr[i+1] = arr[i];
B. arr[i], arr[i+1] = arr[i+1], arr[i];
C. swap(arr[i], arr[i+1]);
D. let temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp;
Solution
Step 1: Understand JavaScript swapping
JavaScript does not support tuple unpacking; use a temporary variable to swap.
Step 2: Analyze each option
let temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; uses a temp variable correctly. arr[i], arr[i+1] = arr[i+1], arr[i]; is Python syntax, invalid in JS. swap(arr[i], arr[i+1]); calls undefined function. arr[i] = arr[i+1]; arr[i+1] = arr[i]; overwrites values incorrectly.
Final Answer:
let temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; -> Option D
Quick Check:
Use temp variable to swap in JS [OK]
Hint: Use temp variable to swap in JavaScript [OK]
Common Mistakes:
Using Python-style tuple swap in JavaScript
Calling undefined swap function
Overwriting values without temp variable
3. What will be the output of the following JavaScript code snippet?
let arr = [4, 2, 3];
for(let i = 0; i < arr.length - 1; i++) {
if(arr[i] > arr[i+1]) {
let temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
console.log(arr);
medium
A. [2, 4, 3]
B. [2, 3, 4]
C. [4, 2, 3]
D. [3, 2, 4]
Solution
Step 1: Trace the single pass of the loop
Loop runs i=0 to 1. At i=0: 4 > 2, swap -> arr = [2,4,3]. At i=1: 4 > 3, swap -> arr = [2,3,4].
Step 2: Check loop range carefully
The loop runs only once over the array (i from 0 to length-2). So swaps happen at i=0 and i=1.
Final Answer:
[2, 4, 3] -> Option A
Quick Check:
One pass swaps neighbors to partially sort [OK]
Hint: Trace each swap carefully for one loop pass [OK]
Common Mistakes:
Assuming full sort after one pass
Ignoring second swap at i=1
Confusing array indices
4. Identify the error in this Bubble Sort code snippet and choose the correct fix:
B. Change outer loop to run from i = 1 to arr.length
C. Change inner loop condition to j < arr.length - i - 1
D. Add a check to skip swapping equal elements
Solution
Step 1: Analyze inner loop range
Inner loop runs till j < arr.length, so arr[j+1] can be undefined at last index causing error.
Step 2: Fix inner loop to avoid out-of-bound access
Changing condition to j < arr.length - i - 1 prevents accessing beyond array length and optimizes sorting.
Final Answer:
Change inner loop condition to j < arr.length - i - 1 -> Option C
Quick Check:
Inner loop must avoid out-of-bound index [OK]
Hint: Inner loop stops earlier each pass to avoid overflow [OK]
Common Mistakes:
Ignoring array boundary causing undefined access
Changing outer loop incorrectly
Removing inner loop breaks sorting
5. Given the array [5, 1, 4, 2, 8], how many total swaps will Bubble Sort perform to fully sort it in ascending order?
hard
A. 4
B. 6
C. 5
D. 7
Solution
Step 1: Perform Bubble Sort passes and count swaps
Pass 1 swaps: (5,1), (5,4), (5,2) -> 3 swaps (5 and 8 no swap).
Step 2: Continue passes counting swaps
Pass 2 swaps: (4,2) -> 1 swap. Pass 3 swaps: (4,3) none here but actually (2,3) no swap, but we need to check carefully. Actually, pass 3 swaps: (2,3) no swap, pass 4 no swaps. Total swaps: 3 + 1 + 2 = 6.
Step 3: Verify total swaps
Counting carefully, total swaps are 6, so 6.
Final Answer:
6 -> Option B
Quick Check:
Count swaps each pass carefully [OK]
Hint: Count swaps pass by pass to avoid missing any [OK]
Common Mistakes:
Assuming swaps equal to array length
Counting comparisons instead of swaps
Missing repeated swaps in later passes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.