Bird
Raised Fist0
DSA Pythonprogramming~10 mins

Selection Sort Algorithm in DSA Python - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to start the outer loop for selection sort.

DSA Python
for i in range([1], len(arr)):
    min_idx = i
Drag options to blanks, or click blank then click option'
A0
B1
Clen(arr)
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Starting loop from 1 skips the first element.
Using len(arr) as start causes no iterations.
2fill in blank
medium

Complete the code to start the inner loop for selection sort.

DSA Python
for j in range([1], len(arr)):
    if arr[j] < arr[min_idx]:
        min_idx = j
Drag options to blanks, or click blank then click option'
A0
Bi - 1
Clen(arr)
Di + 1
Attempts:
3 left
💡 Hint
Common Mistakes
Starting inner loop at 0 causes unnecessary comparisons.
Starting inner loop at i - 1 causes index errors.
3fill in blank
hard

Fix the error in swapping the elements after finding the minimum.

DSA Python
arr[i], arr[[1]] = arr[[1]], arr[i]
Drag options to blanks, or click blank then click option'
A0
Bi
Cmin_idx
Dj
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping with i does nothing.
Swapping with j may cause wrong swaps.
4fill in blank
hard

Fill both blanks to complete the condition and the key comparison in selection sort.

DSA Python
for i in range(len(arr)):
    min_idx = i
    for j in range(i + 1, len(arr)):
        if arr[j] [1] arr[min_idx]:
            min_idx = [2]
Drag options to blanks, or click blank then click option'
A<
B>
Cj
Di
Attempts:
3 left
💡 Hint
Common Mistakes
Using > instead of < reverses sorting order.
Assigning min_idx to i instead of j misses the new minimum.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps each number to its square if the number is less than 5.

DSA Python
squares = [1]: [2] for [3] in range(10) if [3] < 5
Drag options to blanks, or click blank then click option'
Ax
Bx**2
Di
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names inconsistently.
Not applying the condition correctly.

Practice

(1/5)
1. What is the main idea behind the Selection Sort algorithm?
easy
A. Repeatedly find the smallest element and move it to the front
B. Divide the list into halves and merge sorted halves
C. Swap adjacent elements if they are in wrong order repeatedly
D. Use a pivot to partition the list into smaller parts

Solution

  1. Step 1: Understand Selection Sort process

    Selection Sort works by finding the smallest element in the unsorted part and swapping it with the first unsorted element.
  2. Step 2: Compare with other sorting methods

    Other options describe different algorithms: merge sort, bubble sort, and quicksort, not selection sort.
  3. Final Answer:

    Repeatedly find the smallest element and move it to the front -> Option A
  4. Quick Check:

    Selection Sort = Find smallest and swap [OK]
Hint: Selection sort always picks the smallest next element [OK]
Common Mistakes:
  • Confusing selection sort with bubble sort
  • Thinking it divides the list like merge sort
  • Mixing it up with quicksort's pivot method
2. Which of the following is the correct syntax to swap two elements a[i] and a[j] in Python during selection sort?
easy
A. temp = a[i]; a[i] = a[j]; a[j] = a[i]
B. a[i], a[j] = a[j], a[i]
C. swap(a[i], a[j])
D. a[i] = a[j]; a[j] = a[i]

Solution

  1. Step 1: Identify Pythonic swap syntax

    Python allows swapping two variables in one line: a[i], a[j] = a[j], a[i].
  2. Step 2: Check other options for correctness

    temp = a[i]; a[i] = a[j]; a[j] = a[i] causes data loss by overwriting without properly using temp; swap(a[i], a[j]) is invalid syntax; a[i] = a[j]; a[j] = a[i] causes both to have same value.
  3. Final Answer:

    a[i], a[j] = a[j], a[i] -> Option B
  4. Quick Check:

    Python swap = a[i], a[j] = a[j], a[i] [OK]
Hint: Use comma swap for clean Python element exchange [OK]
Common Mistakes:
  • Using a function swap() which doesn't exist
  • Assigning one element twice causing data loss
  • Not using tuple unpacking for swap
3. What will be the output of the following code snippet?
def selection_sort(arr):
    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]

arr = [3, 1, 4]
selection_sort(arr)
print(arr)
medium
A. [4, 3, 1]
B. [3, 1, 4]
C. [1, 4, 3]
D. [1, 3, 4]

Solution

  1. Step 1: Trace first iteration of outer loop

    i=0, min_idx=0; inner loop finds smallest element from index 1 and 2. arr[1]=1 < arr[0]=3, so min_idx=1. Swap arr[0] and arr[1]: arr becomes [1, 3, 4].
  2. Step 2: Trace second iteration

    i=1, min_idx=1; inner loop checks arr[2]=4 which is not less than arr[1]=3, so no swap. Array stays [1, 3, 4].
  3. Final Answer:

    [1, 3, 4] -> Option D
  4. Quick Check:

    Sorted array = [1, 3, 4] [OK]
Hint: Selection sort places smallest element at front each pass [OK]
Common Mistakes:
  • Not swapping when min_idx changes
  • Confusing indices in inner loop
  • Assuming array is unchanged
4. Identify the error in the following selection sort code and choose the correct fix:
def selection_sort(arr):
    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]
medium
A. Initialize min_idx to 0 instead of i
B. Swap should be done outside the outer loop
C. Change '>' to '<' in the if condition to find the smallest element
D. Use '==' instead of '>' in the if condition

Solution

  1. Step 1: Analyze the if condition logic

    The code uses 'if arr[j] > arr[min_idx]' which finds the largest element, but selection sort needs the smallest.
  2. Step 2: Correct the comparison operator

    Changing '>' to '<' will correctly find the smallest element to swap.
  3. Final Answer:

    Change '>' to '<' in the if condition to find the smallest element -> Option C
  4. Quick Check:

    Selection sort finds minimum, so use '<' [OK]
Hint: Selection sort finds minimum, so use '<' in comparison [OK]
Common Mistakes:
  • Using '>' causes sorting in descending order
  • Swapping outside loop breaks logic
  • Wrong initialization of min_idx
5. Given a list arr = [5, 3, 8, 3, 9], how many swaps will the selection sort algorithm perform to sort this list in ascending order?
hard
A. 3
B. 4
C. 2
D. 5

Solution

  1. Step 1: Trace selection sort swaps step-by-step

    Initial array: [5, 3, 8, 3, 9] - i=0: smallest is 3 at index 1, swap arr[0] and arr[1] -> [3, 5, 8, 3, 9] (1 swap) - i=1: smallest is 3 at index 3, swap arr[1] and arr[3] -> [3, 3, 8, 5, 9] (2 swaps) - i=2: smallest is 5 at index 3, swap arr[2] and arr[3] -> [3, 3, 5, 8, 9] (3 swaps) - i=3: smallest is 8 at index 3, no swap needed - i=4: last element, no swap needed
  2. Step 2: Count total swaps

    Total swaps performed = 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Swaps counted = 3 [OK]
Hint: Count swaps only when min_idx changes and swap occurs [OK]
Common Mistakes:
  • Counting swaps even when min_idx equals i
  • Assuming one swap per iteration always
  • Ignoring repeated elements affecting swaps
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard