Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

Selection Sort Algorithm in DSA Javascript - 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 moves it to the beginning, sorting the list step by step.
Click to reveal answer
beginner
How many passes does Selection Sort make over the array?
Selection Sort makes n-1 passes over 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 average and worst cases?
The time complexity is O(n²) because it uses two nested loops: one to select the position and one to find the minimum element.
Click to reveal answer
beginner
Does Selection Sort require extra space for sorting?
No, Selection Sort sorts the array in place and requires only a constant amount of extra space (O(1)).
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
What does Selection Sort do in each pass?
AFinds the smallest element and swaps it to the front
BSwaps adjacent elements if they are in wrong order
CDivides the array into halves and sorts each
DBuilds a heap to sort elements
What is the best case time complexity of Selection Sort?
AO(n log n)
BO(n²)
CO(n)
DO(log n)
How much extra memory does Selection Sort need?
AO(n²)
BO(log n)
CO(n)
DO(1)
Which of these is true about Selection Sort?
AIt is a stable sorting algorithm
BIt is faster than Quick Sort on large arrays
CIt is an unstable sorting algorithm
DIt uses divide and conquer
After the first pass of Selection Sort on [5, 3, 8, 4], what is the array?
A[3, 5, 8, 4]
B[5, 3, 8, 4]
C[3, 4, 5, 8]
D[4, 3, 8, 5]
Explain how Selection Sort works step by step on a small array.
Think about how you pick the smallest item and place it at the start repeatedly.
You got /4 concepts.
    Compare Selection Sort with Bubble Sort in terms of time complexity and stability.
    Consider how each algorithm moves elements and whether equal elements keep their order.
    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 merge sorted halves
      B. Repeatedly find the smallest element and move it to the front
      C. Swap adjacent elements if they are in wrong order repeatedly
      D. Use a pivot to partition the array 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 Merge Sort, Bubble Sort, and Quick Sort, which are different algorithms.
      3. Final Answer:

        Repeatedly find the smallest element and move it to the front -> Option B
      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 uses divide and conquer
      • Assuming it uses a pivot element
      2. Which of the following is the correct syntax to swap two elements arr[i] and arr[minIndex] in JavaScript during Selection Sort?
      easy
      A. temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp;
      B. arr[i], arr[minIndex] = arr[minIndex], arr[i];
      C. [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
      D. swap(arr[i], arr[minIndex]);

      Solution

      1. Step 1: Identify JavaScript swap syntax

        JavaScript supports swapping using destructuring assignment: [a, b] = [b, a].
      2. Step 2: Check each option

        temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; is valid but missing let or var for temp and is verbose. arr[i], arr[minIndex] = arr[minIndex], arr[i]; is invalid syntax in JavaScript. swap(arr[i], arr[minIndex]); is a function call but no such built-in function exists.
      3. Final Answer:

        [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; -> Option C
      4. Quick Check:

        Destructuring swap = [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; [OK]
      Hint: Use destructuring assignment for swapping in JavaScript [OK]
      Common Mistakes:
      • Using Python-style tuple swap syntax
      • Calling undefined swap function
      • Forgetting to declare temporary variable
      3. What will be the output array after running Selection Sort on [29, 10, 14, 37, 13]?
      medium
      A. [37, 29, 14, 13, 10]
      B. [13, 10, 14, 29, 37]
      C. [29, 10, 14, 37, 13]
      D. [10, 13, 14, 29, 37]

      Solution

      1. Step 1: Perform Selection Sort step-by-step

        Initial array: [29, 10, 14, 37, 13]
        Find smallest from index 0 to end: 10 at index 1, swap with 29.
        Array: [10, 29, 14, 37, 13]
        Find smallest from index 1 to end: 13 at index 4, swap with 29.
        Array: [10, 13, 14, 37, 29]
        Find smallest from index 2 to end: 14 at index 2, no swap.
        Find smallest from index 3 to end: 29 at index 4, swap with 37.
        Array: [10, 13, 14, 29, 37]
      2. Step 2: Confirm final sorted array

        The array is sorted in ascending order: [10, 13, 14, 29, 37].
      3. Final Answer:

        [10, 13, 14, 29, 37] -> Option D
      4. Quick Check:

        Sorted array = [10, 13, 14, 29, 37] [OK]
      Hint: Selection Sort places smallest element at front each pass [OK]
      Common Mistakes:
      • Not swapping correctly after finding minimum
      • Confusing index positions during swaps
      • Assuming array is unchanged
      4. Identify the error in this Selection Sort code snippet:
      function selectionSort(arr) {
        for (let i = 0; i < arr.length; i++) {
          let minIndex = i;
          for (let j = i + 1; j < arr.length; j++) {
            if (arr[j] < arr[minIndex]) {
              minIndex = j;
            }
          }
          arr[i] = arr[minIndex];
          arr[minIndex] = arr[i];
        }
        return arr;
      }
      medium
      A. Swapping lines overwrite values causing incorrect swaps
      B. Loop ranges are incorrect, should be j < arr.length - 1
      C. minIndex should be initialized outside the outer loop
      D. Function does not return the sorted array

      Solution

      1. Step 1: Analyze the swap logic

        The swap is done by assigning arr[i] = arr[minIndex] first, then arr[minIndex] = arr[i]. This overwrites arr[i] before assigning to arr[minIndex], causing both to have the same value.
      2. Step 2: Correct swap method

        Use a temporary variable or destructuring assignment to swap without overwriting:
        let temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp;
      3. Final Answer:

        Swapping lines overwrite values causing incorrect swaps -> Option A
      4. Quick Check:

        Incorrect swap overwrites values = Swapping lines overwrite values causing incorrect swaps [OK]
      Hint: Use temp variable or destructuring to swap safely [OK]
      Common Mistakes:
      • Swapping without temp variable
      • Incorrect loop boundaries
      • Not returning the array
      5. Given an array with duplicate values [4, 2, 4, 3, 2], how many swaps will Selection Sort perform to fully sort it?
      hard
      A. 3
      B. 5
      C. 4
      D. 2

      Solution

      1. Step 1: Trace Selection Sort swaps on the array

        Initial array: [4, 2, 4, 3, 2]
        Pass 1: smallest from index 0-4 is 2 at index 1, swap with 4 at index 0.
        Array: [2, 4, 4, 3, 2] (1 swap)
        Pass 2: smallest from index 1-4 is 2 at index 4, swap with 4 at index 1.
        Array: [2, 2, 4, 3, 4] (2 swaps)
        Pass 3: smallest from index 2-4 is 3 at index 3, swap with 4 at index 2.
        Array: [2, 2, 3, 4, 4] (3 swaps)
        Pass 4: smallest from index 3-4 is 4 at index 3, no swap.
        Pass 5: last element, no swap.
      2. Step 2: Count total swaps

        Total swaps performed = 3.
      3. Final Answer:

        3 -> Option A
      4. Quick Check:

        Count swaps during passes = 3 [OK]
      Hint: Count swaps only when minimum index differs from current index [OK]
      Common Mistakes:
      • Counting all comparisons as swaps
      • Ignoring swaps when minIndex equals current index
      • Assuming duplicates reduce swaps to zero
      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