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
intermediate
How many times does Selection Sort swap elements in the worst case?
Selection Sort makes exactly n-1 swaps in the worst case, where n is the number of elements, because it swaps once per pass after finding the minimum.
Click to reveal answer
beginner
What is the time complexity of Selection Sort and why?
Selection Sort has a time complexity of O(n²) because it uses two nested loops: one to select the position and one to find the minimum element in the unsorted part.
Click to reveal answer
beginner
Show the first step of Selection Sort on the array [29, 10, 14, 37, 13].
Find the smallest element (10) and swap it with the first element (29). The array becomes [10, 29, 14, 37, 13].
Click to reveal answer
intermediate
Why is Selection Sort not efficient for large datasets?
Because Selection Sort always checks all remaining elements to find the minimum, it performs many comparisons, making it slow (O(n²)) for large datasets.
Click to reveal answer
What does Selection Sort do at each step?
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
DInserts elements into their correct position one by one
✗ Incorrect
Selection Sort finds the smallest element in the unsorted part and swaps it with the first unsorted element.
How many swaps does Selection Sort perform in the best case?
An-1
Bn²
Cn
D0
✗ Incorrect
Selection Sort always performs n-1 swaps regardless of the initial order.
What is the time complexity of Selection Sort?
AO(n log n)
BO(n²)
CO(n)
DO(log n)
✗ Incorrect
Selection Sort uses nested loops leading to O(n²) time complexity.
Which of these is a characteristic of Selection Sort?
AStable sorting algorithm
BBest for large datasets
CUses extra memory for sorting
DIn-place sorting algorithm
✗ Incorrect
Selection Sort sorts the array in place without extra memory.
After the first pass of Selection Sort on [5, 3, 8, 4, 2], what is the array?
A[2, 3, 8, 4, 5]
B[3, 5, 8, 4, 2]
C[5, 3, 8, 4, 2]
D[2, 5, 8, 4, 3]
✗ Incorrect
The smallest element 2 is swapped with the first element 5.
Explain how Selection Sort works step by step on an unsorted array.
Think about how you pick the smallest item and place it at the start repeatedly.
You got /4 concepts.
Describe the advantages and disadvantages of Selection Sort.
Consider both how it works and how fast it is.
You got /4 concepts.
Practice
(1/5)
1. What is the main idea behind the Selection Sort Algorithm?
easy
A. Divide the list into halves and sort each half separately
B. Use a pivot to partition the list into smaller parts
C. Swap adjacent elements if they are in the wrong order
D. Repeatedly find the smallest element and move it to the front
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 divide and conquer or adjacent swaps, selection sort directly selects the minimum each time.
Final Answer:
Repeatedly find the smallest element and move it to the front -> Option D
Quick Check:
Selection sort = find minimum repeatedly [OK]
Hint: Selection sort picks smallest element each pass [OK]
Common Mistakes:
Confusing selection sort with bubble sort
Thinking it divides the list like merge sort
Assuming it uses a pivot like quicksort
2. Which of the following is the correct syntax to swap two elements arr[i] and arr[minIndex] in C# during selection sort?
easy
A. arr[i], arr[minIndex] = arr[minIndex], arr[i];
B. arr[i] = arr[minIndex]; arr[minIndex] = arr[i];
C. temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp;
D. swap(arr[i], arr[minIndex]);
Solution
Step 1: Understand swapping in C#
C# does not support tuple unpacking or direct swap functions; we use a temporary variable to swap values.
Step 2: Check each option
temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; uses a temp variable correctly. arr[i] = arr[minIndex]; arr[minIndex] = arr[i]; overwrites arr[i] before assigning arr[minIndex]. swap(arr[i], arr[minIndex]); is invalid syntax. arr[i], arr[minIndex] = arr[minIndex], arr[i]; is Python style, not C#.
3. What will be the output of the following C# code snippet after applying selection sort?
int[] arr = {64, 25, 12, 22, 11};
// Apply selection sort here
for (int i = 0; i < arr.Length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
Console.WriteLine(string.Join(", ", arr));
medium
A. 11, 12, 22, 25, 64
B. 64, 25, 12, 22, 11
C. 25, 12, 22, 11, 64
D. 11, 22, 12, 25, 64
Solution
Step 1: Trace the selection sort iterations
First pass finds 11 (smallest) and swaps with 64. Array: [11, 25, 12, 22, 64]. Second pass finds 12 and swaps with 25. Array: [11, 12, 25, 22, 64]. Third pass finds 22 and swaps with 25. Array: [11, 12, 22, 25, 64]. Fourth pass finds 25 (already in place). Final sorted array is [11, 12, 22, 25, 64].
Step 2: Confirm final output
The printed output is the sorted array joined by commas.
4. Identify the error in the following selection sort code snippet and choose the correct fix:
int[] arr = {3, 1, 4, 2};
for (int i = 0; i < arr.Length; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++) {
if (arr[j] > arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
medium
A. Change 'if (arr[j] > arr[minIndex])' to 'if (arr[j] < arr[minIndex])'
B. Change outer loop to 'for (int i = 0; i < arr.Length - 1; i++)'
C. Remove the swap code inside the loop
D. Initialize minIndex to 0 instead of i
Solution
Step 1: Analyze the comparison condition
The code uses 'arr[j] > arr[minIndex]' which finds the maximum instead of minimum, so it sorts in descending order, not ascending.
Step 2: Correct the comparison for ascending order
Changing the condition to 'arr[j] < arr[minIndex]' finds the minimum element as required by selection sort.
Final Answer:
Change 'if (arr[j] > arr[minIndex])' to 'if (arr[j] < arr[minIndex])' -> Option A
Quick Check:
Comparison must find minimum element [OK]
Hint: Use '<' to find minimum in selection sort [OK]
Common Mistakes:
Using '>' instead of '<' in inner loop
Looping one extra time causing index errors
Not swapping elements properly
5. Given an array int[] arr = {5, 3, 8, 6, 2, 7, 4, 1}, how many swaps will the selection sort algorithm perform to sort it in ascending order?
hard
A. 6
B. 5
C. 7
D. 8
Solution
Step 1: Understand swap count in selection sort
Selection sort swaps once per outer loop iteration if the minimum is not already at the current position.
Step 2: Count swaps for given array
Array length is 8, so outer loop runs 7 times (0 to 6). Each iteration finds minimum and swaps if needed. Here, minimum is at current index in one iteration, so total swaps are 5.
Final Answer:
5 -> Option B
Quick Check:
Swaps = number of times minimum is not at current index [OK]
Hint: Selection sort swaps at most n-1 times, but only when needed [OK]
Common Mistakes:
Counting swaps as number of elements
Assuming swaps happen every iteration
Confusing swaps with comparisons
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.