Draw a flowchart for the Bubble Sort algorithm to sort the list [5, 3, 8, 4] in ascending order.
Sorting algorithms (bubble, selection) in Intro to Computing - Draw & Build Visually
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Draw This - beginner
Grading Criteria
Solution
j
j+1
j
Go back to |
j
j+1
↩Go back to |
This flowchart shows the Bubble Sort algorithm working on the list [5, 3, 8, 4].
1. Start with i = 0, which tracks how many passes have been done.
2. Set a flag swapped to false to check if any swaps happen in this pass.
3. Use j to compare adjacent elements from the start to the end minus the sorted part.
4. If list[j] is greater than list[j+1], swap them and set swapped to true.
5. Increment j and repeat until the end of the unsorted part.
6. If no swaps happened (swapped is false), the list is sorted and the algorithm ends.
7. Otherwise, increment i and repeat the process for the next pass.
This process continues until the list is fully sorted in ascending order.
Variations - 2 Challenges
[intermediate] Draw a flowchart for the Selection Sort algorithm to sort the list [7, 2, 9, 1] in ascending order.
[advanced] Draw a flowchart for Bubble Sort to sort the list [4, 6, 2, 9, 1] in descending order.
Practice
1. Which of the following best describes how bubble sort works?
easy
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 AQuick 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
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
Usingfor 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 DQuick 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
medium
Solution
Step 1: Perform neighbor comparisons and swaps
Compare 4 & 2: swap -> [2, 4, 5, 1]; compare 4 & 5: no swap; compare 5 & 1: swap -> [2, 4, 1, 5]Step 2: Confirm final list after pass 1
After one pass, largest number 5 is bubbled to the end, list is [2, 4, 1, 5]Final Answer:
[2, 4, 1, 5] -> Option BQuick Check:
Bubble pass 1 swaps neighbors -> [2, 4, 1, 5] [OK]
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
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 CQuick 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
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 AQuick Check:
Selection sort places smallest at start each pass [OK]
Hint: Selection sort fixes one smallest item per pass [OK]
Common Mistakes:
- Assuming list is unchanged after passes
- Mixing bubble sort behavior with selection sort
- Swapping incorrectly during passes
