Bird
Raised Fist0
DSA C#programming~5 mins

Insertion 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 Insertion Sort algorithm?
Insertion Sort builds the sorted list one element at a time by taking each element and inserting it into its correct position among the already sorted elements.
Click to reveal answer
beginner
How does Insertion Sort handle the elements during sorting?
It picks elements one by one from the unsorted part and inserts them into the correct position in the sorted part by shifting larger elements to the right.
Click to reveal answer
intermediate
What is the time complexity of Insertion Sort in the worst case?
The worst-case time complexity is O(n²), where n is the number of elements, because each insertion may require shifting all previously sorted elements.
Click to reveal answer
intermediate
Why is Insertion Sort efficient for nearly sorted data?
Because it only shifts elements when necessary, if the data is almost sorted, fewer shifts are needed, making it close to O(n) time.
Click to reveal answer
beginner
Show the state of the array after inserting the element 5 into the sorted subarray [1, 3, 7, 9].
After inserting 5, the array becomes [1, 3, 5, 7, 9]. The element 5 is placed between 3 and 7 by shifting 7 and 9 to the right.
Click to reveal answer
What does Insertion Sort do with each new element from the unsorted part?
AInserts it into the correct position in the sorted part
BSwaps it with the last element
CIgnores it if it is smaller
DDeletes it
What is the best-case time complexity of Insertion Sort?
AO(n²)
BO(n log n)
CO(n)
DO(log n)
Which of these is true about Insertion Sort?
AIt is the fastest sorting algorithm for large data
BIt always uses extra memory
CIt sorts by dividing the array into halves
DIt is a stable sorting algorithm
In Insertion Sort, what happens when the current element is smaller than elements in the sorted part?
AThe current element is swapped with the first element
BThose elements are shifted right to make space
CThe array is reversed
DThe current element is discarded
Which scenario makes Insertion Sort perform poorly?
AArray is sorted in reverse order
BArray is already sorted
CArray is nearly sorted
DArray has all equal elements
Explain how Insertion Sort works step-by-step on an example array.
Think about how you sort playing cards in your hand.
You got /4 concepts.
    Describe the time complexity of Insertion Sort and when it performs best and worst.
    Consider how many shifts happen in different input orders.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main idea behind the Insertion Sort algorithm?
      easy
      A. It builds the sorted array one element at a time by inserting elements in their correct position.
      B. It divides the array into halves and sorts each half recursively.
      C. It repeatedly swaps adjacent elements if they are in the wrong order.
      D. It selects the smallest element and swaps it with the first unsorted element.

      Solution

      1. Step 1: Understand insertion sort process

        Insertion sort takes one element at a time and inserts it into the correct position in the already sorted part of the array.
      2. Step 2: Compare with other sorting methods

        Other options describe merge sort (B), bubble sort (C), and selection sort (D), which are different algorithms.
      3. Final Answer:

        It builds the sorted array one element at a time by inserting elements in their correct position. -> Option A
      4. Quick Check:

        Insertion sort = Insert elements step-by-step [OK]
      Hint: Insertion sort inserts elements one by one in order [OK]
      Common Mistakes:
      • Confusing insertion sort with bubble sort
      • Thinking insertion sort divides array recursively
      • Mixing up selection sort with insertion sort
      2. Which of the following is the correct syntax to start the outer loop for insertion sort in C# for an array arr of length n?
      easy
      A. for (int i = 0; i < n; i++)
      B. for (int i = 1; i <= n; i++)
      C. for (int i = n - 1; i >= 0; i--)
      D. for (int i = 1; i < n; i++)

      Solution

      1. Step 1: Identify starting index for insertion sort

        Insertion sort starts from the second element (index 1) because the first element is considered sorted.
      2. Step 2: Check loop conditions

        The loop runs while i < n to cover all elements. for (int i = 1; i < n; i++) matches this.
      3. Final Answer:

        for (int i = 1; i < n; i++) -> Option D
      4. Quick Check:

        Start from 1 to n-1 for insertion sort loop [OK]
      Hint: Start outer loop at 1, not 0, for insertion sort [OK]
      Common Mistakes:
      • Starting loop at 0 instead of 1
      • Using <= n instead of < n causing out-of-bounds
      • Counting backwards incorrectly
      3. What will be the output array after applying insertion sort on int[] arr = {4, 3, 2, 1}?
      medium
      A. [1, 3, 2, 4]
      B. [4, 3, 2, 1]
      C. [1, 2, 3, 4]
      D. [2, 3, 4, 1]

      Solution

      1. Step 1: Trace insertion sort on given array

        Start with 4 (sorted). Insert 3 before 4 -> [3,4,2,1]. Insert 2 before 3 -> [2,3,4,1]. Insert 1 before 2 -> [1,2,3,4].
      2. Step 2: Confirm final sorted array

        The array is sorted in ascending order: [1, 2, 3, 4].
      3. Final Answer:

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

        Insertion sort sorts ascending -> [1, 2, 3, 4] [OK]
      Hint: Insertion sort sorts array ascending step-by-step [OK]
      Common Mistakes:
      • Assuming array stays unchanged
      • Mixing up positions during insertion
      • Stopping before fully sorting
      4. Identify the error in this insertion sort code snippet:
      for (int i = 1; i < arr.Length; i++) {
          int key = arr[i];
          int j = i + 1;
          while (j >= 0 && arr[j] > key) {
              arr[j + 1] = arr[j];
              j--;
          }
          arr[j + 1] = key;
      }
      medium
      A. The variable j should start at i - 1 instead of i + 1.
      B. The while loop condition should use j < arr.Length instead of j >= 0.
      C. The key should be assigned after the while loop, not before.
      D. The array index arr[j + 1] causes out-of-bounds error.

      Solution

      1. Step 1: Check initialization of j

        In insertion sort, j starts at the element before i, so it should be i - 1, not i + 1.
      2. Step 2: Verify while loop condition and shifting

        The condition j >= 0 is correct to move backwards. The shifting logic is correct if j starts properly.
      3. Final Answer:

        The variable j should start at i - 1 instead of i + 1. -> Option A
      4. Quick Check:

        j starts at i-1 to compare previous elements [OK]
      Hint: j must start left of i to compare previous elements [OK]
      Common Mistakes:
      • Starting j at i+1 causing wrong comparisons
      • Incorrect while loop boundary causing errors
      • Misplacing key assignment inside loop
      5. Given a nearly sorted array int[] arr = {1, 2, 4, 3, 5, 6}, how many element shifts will insertion sort perform to fully sort it?
      hard
      A. 2
      B. 1
      C. 3
      D. 4

      Solution

      1. Step 1: Identify where shifts occur

        Only the element 3 is out of order. It needs to be inserted before 4.
      2. Step 2: Count shifts to insert 3

        To insert 3, j=2 (arr[2]=4 > 3), shift arr[3]=arr[2] (1 shift), j=1 (arr[1]=2 < 3), stop. Place arr[2]=3 (not a shift).
      3. Step 3: Check if other shifts occur

        No other elements need shifting. Total shifts = 1.
      4. Final Answer:

        1 -> Option B
      5. Quick Check:

        One shift when inserting 3 [OK]
      Hint: Count only elements moved to insert out-of-place items [OK]
      Common Mistakes:
      • Counting swaps instead of shifts
      • Ignoring that placing key is not a shift
      • Assuming all elements shift
      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