📖 Scenario: You are helping a librarian organize a small shelf of books by their ID numbers. The books are currently in a random order, and you want to arrange them from smallest to largest ID using a simple sorting method.
🎯 Goal: Build a program that sorts a list of book IDs using the bubble sort algorithm. You will create the list, set up a variable for the number of books, implement the bubble sort logic, and finally print the sorted list.
📋 What You'll Learn
Create a list called book_ids with these exact values: [23, 12, 45, 7, 19]
Create a variable called n that stores the length of book_ids
Use nested for loops with variables i and j to implement bubble sort on book_ids
Swap elements in book_ids when the current element is greater than the next element
Print the sorted book_ids list at the end
💡 Why This Matters
🌍 Real World
Sorting is used in libraries, stores, and apps to organize items so they are easy to find.
💼 Career
Understanding sorting algorithms like bubble sort helps in software development and data processing tasks.
Progress0 / 4 steps
1
Create the list of book IDs
Create a list called book_ids with these exact values: [23, 12, 45, 7, 19]
DSA Python
Hint
Use square brackets [] to create a list and separate numbers with commas.
2
Set the length variable
Create a variable called n that stores the length of the list book_ids using the len() function
DSA Python
Hint
Use len(book_ids) to get the number of items in the list.
3
Implement the bubble sort logic
Use nested for loops with variables i and j to implement bubble sort on book_ids. Swap elements when book_ids[j] is greater than book_ids[j + 1]
DSA Python
Hint
Use two loops: the outer loop runs from 0 to n, the inner loop runs from 0 to n - i - 1. Swap elements if the current is greater than the next.
4
Print the sorted list
Print the sorted list book_ids using print(book_ids)
DSA Python
Hint
Use print(book_ids) to show the sorted list.
Practice
(1/5)
1. What is the main idea behind the Bubble Sort algorithm?
easy
A. Divide the list into halves and sort each half separately
B. Repeatedly swap adjacent elements if they are in the wrong order
C. Select the smallest element and place it at the beginning
D. Use a pivot to partition the list into smaller parts
Solution
Step 1: Understand Bubble Sort process
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: divide and conquer, selection, and quicksort.
Final Answer:
Repeatedly swap adjacent elements if they are in the wrong order -> Option B
Quick Check:
Bubble Sort = Swap adjacent pairs [OK]
Hint: Bubble Sort swaps neighbors repeatedly until sorted [OK]
Common Mistakes:
Confusing Bubble Sort with Selection Sort
Thinking it divides the list like Merge Sort
Mixing it up with Quick Sort pivot method
2. Which of the following is the correct syntax to start a bubble sort outer loop in Python for a list arr of length n?
easy
A. for i in range(n):
B. for i in range(1, n):
C. for i in range(n-1):
D. for i in range(n+1):
Solution
Step 1: Understand loop range for bubble sort
The outer loop runs from 0 to n-2 because we compare pairs up to the second last element.
Step 2: Check each option's range
for i in range(n-1): uses range(n-1), which means 0 to n-2, correct for bubble sort outer loop.
Final Answer:
for i in range(n-1): -> Option C
Quick Check:
Outer loop runs n-1 times [OK]
Hint: Outer loop runs n-1 times for bubble sort [OK]
Common Mistakes:
Using range(n) causes extra unnecessary iteration
Starting loop at 1 misses first element
Using range(n+1) causes index errors
3. What will be the output of the following code?
arr = [4, 2, 3]
for i in range(len(arr)-1):
for j in range(len(arr)-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print(arr)
medium
A. [2, 3, 4]
B. [4, 3, 2]
C. [3, 2, 4]
D. [2, 4, 3]
Solution
Step 1: Trace first outer loop iteration (i=0)
Inner loop runs j=0 to 1. Swaps 4 and 2 -> [2,4,3], then swaps 4 and 3 -> [2,3,4].
Step 2: Trace second outer loop iteration (i=1)
Inner loop runs j=0 only. Compares 2 and 3, no swap needed. Array stays [2,3,4].
Final Answer:
[2, 3, 4] -> Option A
Quick Check:
Bubble Sort sorts ascending -> [2,3,4] [OK]
Hint: Bubble Sort outputs sorted list ascending [OK]
Common Mistakes:
Not swapping correctly in inner loop
Confusing loop ranges causing partial sort
Printing before sorting completes
4. Identify the error in this bubble sort code snippet:
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
medium
A. Inner loop should run till n-1-i, not n-1
B. Outer loop should run till n-1, not n
C. Swap syntax is incorrect
D. Function does not return anything
Solution
Step 1: Analyze inner loop range
Inner loop runs from 0 to n-2 always, not reducing with i, causing unnecessary comparisons.
Step 2: Correct inner loop range
It should be range(n-1-i) to avoid checking already sorted elements at the end.
Final Answer:
Inner loop should run till n-1-i, not n-1 -> Option A
Quick Check:
Inner loop shrinks each pass [OK]
Hint: Inner loop shrinks by i each outer iteration [OK]
Common Mistakes:
Not reducing inner loop range wastes time
Incorrect swap syntax causes errors
Forgetting to return sorted array
5. Given the list arr = [5, 1, 4, 2, 8], how many total swaps will bubble sort perform to sort it in ascending order?