Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a sorting algorithm?
A sorting algorithm is a step-by-step method used to arrange items in a list into a certain order, like from smallest to largest. Think of organizing books on a shelf by height.
Click to reveal answer
beginner
How does the Bubble Sort algorithm work?
Bubble Sort compares pairs of items next to each other and swaps them if they are in the wrong order. It repeats this process, like bubbles rising to the top, until the whole list is sorted.
Click to reveal answer
beginner
What is the main idea behind Selection Sort?
Selection Sort finds the smallest item in the list and swaps it with the first item. Then it finds the next smallest and swaps it with the second item, and so on, like picking the smallest apples one by one.
Click to reveal answer
intermediate
Which sorting algorithm is generally faster for small lists: Bubble Sort or Selection Sort?
Selection Sort is usually faster than Bubble Sort for small lists because it makes fewer swaps, even though both check all items multiple times.
Click to reveal answer
beginner
What is a real-life analogy for Bubble Sort?
Imagine sorting a line of kids by height by repeatedly swapping neighbors who are out of order. The tallest kids 'bubble' to the end of the line after several passes.
Click to reveal answer
What does Bubble Sort do when it finds two items in the wrong order?
ADuplicates them
BIgnores them
CDeletes one
DSwaps them
✗ Incorrect
Bubble Sort swaps two items if they are in the wrong order to move larger items towards the end.
In Selection Sort, what is selected during each pass?
AThe largest item
BThe smallest item
CA random item
DThe middle item
✗ Incorrect
Selection Sort selects the smallest item in the unsorted part to place it in the correct position.
Which sorting algorithm repeatedly compares neighbors?
ABubble Sort
BMerge Sort
CQuick Sort
DSelection Sort
✗ Incorrect
Bubble Sort compares and swaps neighboring items repeatedly.
How many swaps does Selection Sort make in the worst case?
ANo swaps
BMany swaps per pass
COne swap per pass
DSwaps equal to list length squared
✗ Incorrect
Selection Sort makes one swap per pass after finding the smallest item.
Which sorting algorithm is easier to visualize as 'bubbles rising'?
ABubble Sort
BInsertion Sort
CSelection Sort
DHeap Sort
✗ Incorrect
Bubble Sort is named for how larger items 'bubble' to the top (end) of the list.
Explain how Bubble Sort works using a real-life example.
Think about sorting kids by height in a line.
You got /4 concepts.
Describe the step-by-step process of Selection Sort with an analogy.
Imagine picking fruits one by one from a basket.
You got /4 concepts.
Practice
(1/5)
1. Which of the following best describes how bubble sort works?
easy
A. It repeatedly swaps neighboring items to move the largest to the end.
B. It finds the smallest item and places it at the start each time.
C. It divides the list into halves and sorts each half separately.
D. It uses a pivot to partition the list into smaller parts.
Solution
Step 1: Understand bubble sort's swapping method
Bubble sort compares neighbors and swaps them if out of order, pushing the largest to the end.
Step 2: Compare with other sorting methods
Selection sort finds smallest items, quicksort uses pivots, so bubble sort matches It repeatedly swaps neighboring items to move the largest to the end.
Final Answer:
It repeatedly swaps neighboring items to move the largest to the end. -> Option A
Quick Check:
Bubble sort = neighbor swaps [OK]
Hint: Bubble sort swaps neighbors to push largest out [OK]
Common Mistakes:
Confusing bubble sort with selection sort
Thinking bubble sort uses pivots
Assuming bubble sort divides list into halves
2. Which of the following is the correct way to start a selection sort on a list named arr in Python?
easy
A. for i in range(1, len(arr)+1):
B. for i in arr:
C. while i < len(arr):
D. for i in range(len(arr)):
Solution
Step 1: Identify the loop for selection sort
Selection sort uses an index loop from 0 to length-1 to select positions.
Step 2: Check Python syntax correctness
Using for i in range(len(arr)): correctly loops over indices; others are incorrect or off-by-one.
Final Answer:
for i in range(len(arr)): -> Option D
Quick Check:
Selection sort loops over indices 0 to n-1 [OK]
Hint: Use range(len(arr)) to loop over list indices [OK]
Common Mistakes:
Using for i in arr (loops over values, not indices)
Using while without initializing i
Using range starting at 1 causing off-by-one errors
3. What is the output of the following bubble sort pass on the list [4, 2, 5, 1]?
Initial list: [4, 2, 5, 1]
Pass 1: Compare and swap neighbors if needed
Hint: Swap neighbors if left is bigger, largest moves right [OK]
Common Mistakes:
Not swapping 5 and 1 at the end
Swapping 4 and 5 incorrectly
Assuming full sort after one pass
4. The following selection sort code has a bug. What is the error?
arr = [3, 1, 4]
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
print(arr)
medium
A. The inner loop should start from i, not i+1
B. The swap line is incorrect; it should not swap
C. No bug; the code correctly sorts the list
D. min_idx should be initialized outside the outer loop
Solution
Step 1: Analyze the selection sort logic
min_idx starts at i, inner loop finds smallest element index after i, then swaps with i.
Step 2: Verify correctness with example
For arr=[3,1,4], code finds min at index 1 and swaps with index 0, resulting in sorted list [1,3,4].
Final Answer:
No bug; the code correctly sorts the list -> Option C
Quick Check:
Selection sort code correct as given [OK]
Hint: Check if code sorts example list correctly [OK]
Common Mistakes:
Thinking inner loop must start at i
Believing swap line is wrong
Misunderstanding min_idx initialization
5. You have a list [7, 3, 5, 2, 9]. After two full passes of selection sort, what will the list look like?
hard
A. [2, 3, 7, 5, 9]
B. [3, 2, 5, 7, 9]
C. [2, 3, 5, 7, 9]
D. [7, 3, 5, 2, 9]
Solution
Step 1: Perform first pass of selection sort
Find smallest in [7, 3, 5, 2, 9] is 2 at index 3; swap with index 0 -> [2, 3, 5, 7, 9]
Step 2: Perform second pass on sublist from index 1 [3, 5, 7, 9]
Find smallest is 3 at index 1; swap with index 1 (no change) -> [2, 3, 5, 7, 9]
Final Answer:
[2, 3, 7, 5, 9] -> Option A
Quick Check:
Selection sort places smallest at start each pass [OK]
Hint: Selection sort fixes one smallest item per pass [OK]