Bird
Raised Fist0
DSA C++programming~5 mins

Selection Sort Algorithm in DSA C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
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
How many swaps does Selection Sort perform in the worst case?
An-1 swaps
Bn² swaps
C0 swaps
Dn swaps
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
What is the best case time complexity of Selection Sort?
AO(n log n)
BO(n)
CO(log n)
DO(n²)
Which sorting algorithm is generally faster than Selection Sort for large arrays?
ABubble Sort
BQuick Sort
CSelection Sort
DInsertion Sort
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

      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

        Unlike swapping adjacent elements or dividing arrays, Selection Sort directly selects the minimum element each time.
      3. Final Answer:

        Repeatedly find the minimum element and place it at the beginning -> Option C
      4. 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

      1. Step 1: Identify correct swap function usage

        In C++, the standard library provides swap(a, b) to exchange values of two variables.
      2. Step 2: Check syntax correctness

        swap(arr[i], arr[min_idx]); uses swap(arr[i], arr[min_idx]); which correctly swaps the two elements.
      3. Final Answer:

        swap(arr[i], arr[min_idx]); -> Option A
      4. 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

      1. 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}
      2. Step 2: Final sorted array

        The array after sorting is [11, 12, 22, 25, 64].
      3. Final Answer:

        [11, 12, 22, 25, 64] -> Option D
      4. Quick Check:

        Selection Sort output = Sorted array ascending [OK]
      Hint: Selection Sort outputs sorted ascending array [OK]
      Common Mistakes:
      • Not swapping minimum element correctly
      • Confusing sorting order (descending vs ascending)
      • Stopping before full array is sorted
      4. Identify the error in the following Selection Sort code snippet:
      for (int i = 0; i < n-1; i++) {
        int min_idx = i;
        for (int j = i+1; j < n; j++) {
          if (arr[j] > arr[min_idx]) {
            min_idx = j;
          }
        }
        swap(arr[i], arr[min_idx]);
      }
      medium
      A. The inner loop condition should be j <= n
      B. The comparison operator should be < to find minimum
      C. The swap function is used incorrectly
      D. The outer loop should run till i < n

      Solution

      1. Step 1: Analyze comparison logic

        The code uses if (arr[j] > arr[min_idx]) which finds the maximum, not minimum.
      2. Step 2: Correct comparison for Selection Sort

        Selection Sort requires finding the minimum element, so the operator should be <.
      3. Final Answer:

        The comparison operator should be < to find minimum -> Option B
      4. Quick Check:

        Selection Sort finds minimum using < comparison [OK]
      Hint: Use < to find minimum in Selection Sort [OK]
      Common Mistakes:
      • Using > instead of < for minimum search
      • Incorrect loop boundaries causing out-of-range errors
      • Misusing swap function parameters
      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

      1. 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
      2. Step 2: Count total swaps

        Total swaps performed = 2
      3. Final Answer:

        2 -> Option A
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard