What is the main idea behind the Selection Sort algorithm?
Selection Sort repeatedly finds the smallest element from the unsorted part and swaps it with the first unsorted element, growing the sorted part step by step.
Click to reveal answer
beginner
How many passes does Selection Sort make through the array?
Selection Sort makes n-1 passes through an array of n elements, because after placing n-1 elements, the last one is already sorted.
Click to reveal answer
intermediate
What is the time complexity of Selection Sort in the best, average, and worst cases?
Selection Sort has a time complexity of O(n²) in all cases because it always compares each element with the rest, regardless of initial order.
Click to reveal answer
beginner
Does Selection Sort require extra memory for sorting?
No, Selection Sort is an in-place sorting algorithm, meaning it sorts the array without needing extra memory beyond a few variables.
Click to reveal answer
intermediate
Why is Selection Sort not efficient for large datasets?
Because Selection Sort always does n² comparisons, it becomes slow for large datasets compared to faster algorithms like Quick Sort or Merge Sort.
Click to reveal answer
What does Selection Sort do in each pass?
ADivides the array into halves and sorts each half
BSwaps adjacent elements if they are in the wrong order
CFinds the smallest element and swaps it with the first unsorted element
DUses a pivot to partition the array
✗ Incorrect
Selection Sort finds the smallest element in the unsorted part and swaps it with the first unsorted element in each pass.
How many swaps does Selection Sort perform in the worst case?
An-1 swaps
Bn² swaps
C0 swaps
Dn swaps
✗ Incorrect
Selection Sort performs exactly n-1 swaps because it swaps once per pass after finding the minimum.
Which of these is true about Selection Sort's space complexity?
AIt sorts in-place using constant extra space
BIt requires extra space proportional to n
CIt needs a temporary array to store sorted elements
DIt uses recursion and stack space
✗ Incorrect
Selection Sort sorts the array in-place and uses only a few variables, so it has constant extra space.
What is the best case time complexity of Selection Sort?
AO(n log n)
BO(n)
CO(log n)
DO(n²)
✗ Incorrect
Selection Sort always does n² comparisons, so its best case time complexity is O(n²).
Which sorting algorithm is generally faster than Selection Sort for large arrays?
ABubble Sort
BQuick Sort
CSelection Sort
DInsertion Sort
✗ Incorrect
Quick Sort is generally faster than Selection Sort for large arrays due to better average time complexity.
Explain step-by-step how Selection Sort sorts the array [4, 2, 7, 1].
Think about how the smallest number moves to the front each time.
You got /4 concepts.
Describe why Selection Sort is considered an in-place sorting algorithm and what that means for memory use.
Focus on how the array is changed directly.
You got /4 concepts.
Practice
(1/5)
1. What is the main idea behind the Selection Sort algorithm?
easy
A. Divide the array into halves and sort each half recursively
B. Swap adjacent elements if they are in wrong order
C. Repeatedly find the minimum element and place it at the beginning
D. Use a heap data structure to sort elements
Solution
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.
Step 2: Compare with other sorting methods
Unlike swapping adjacent elements or dividing arrays, Selection Sort directly selects the minimum element each time.
Final Answer:
Repeatedly find the minimum element and place it at the beginning -> Option C
Quick Check:
Selection Sort = Find minimum and swap [OK]
Hint: Selection Sort picks minimum each pass [OK]
Common Mistakes:
Confusing with Bubble Sort swapping adjacent elements
Thinking it divides array like Merge Sort
Assuming it uses extra data structures like heaps
2. Which of the following is the correct syntax to swap two elements arr[i] and arr[min_idx] in C++ during Selection Sort?
easy
A. swap(arr[i], arr[min_idx]);
B. arr[i] = arr[min_idx]; arr[min_idx] = arr[i];
C. swap(arr[min_idx], arr[j]);
D. arr[i], arr[min_idx] = arr[min_idx], arr[i];
Solution
Step 1: Identify correct swap function usage
In C++, the standard library provides swap(a, b) to exchange values of two variables.
Step 2: Check syntax correctness
swap(arr[i], arr[min_idx]); uses swap(arr[i], arr[min_idx]); which correctly swaps the two elements.
Final Answer:
swap(arr[i], arr[min_idx]); -> Option A
Quick Check:
Use std::swap for swapping [OK]
Hint: Use std::swap(a, b) to swap in C++ [OK]
Common Mistakes:
Assigning one element twice causing data loss
Using Python-style tuple swap syntax in C++
Confusing parameter order in swap function
3. What will be the output array after running Selection Sort on arr = {64, 25, 12, 22, 11}?
medium
A. [11, 22, 12, 25, 64]
B. [64, 25, 12, 22, 11]
C. [25, 11, 12, 22, 64]
D. [11, 12, 22, 25, 64]
Solution
Step 1: Perform Selection Sort passes
Pass 1: Minimum is 11, swap with 64 -> {11, 25, 12, 22, 64} Pass 2: Minimum is 12, swap with 25 -> {11, 12, 25, 22, 64} Pass 3: Minimum is 22, swap with 25 -> {11, 12, 22, 25, 64} Pass 4: Minimum is 25, no swap needed -> {11, 12, 22, 25, 64}
5. Given an array arr = {5, 3, 8, 6, 2}, how many swaps will Selection Sort perform to sort it in ascending order?
hard
A. 2
B. 3
C. 4
D. 5
Solution
Step 1: Trace swaps during Selection Sort
Pass 1: Minimum is 2, swap with 5 -> swap count = 1 Array: {2, 3, 8, 6, 5} Pass 2: Minimum is 3, already at position -> no swap Pass 3: Minimum is 5, swap with 8 -> swap count = 2 Array: {2, 3, 5, 6, 8} Pass 4: Minimum is 6, already at position -> no swap
Step 2: Count total swaps
Total swaps performed = 2
Final Answer:
2 -> Option A
Quick Check:
Count swaps only when minimum differs from current [OK]
Hint: Count swaps only when minimum differs from current [OK]
Common Mistakes:
Counting all passes as swaps
Ignoring when minimum is already at current position
Assuming swaps equal number of passes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.