Bird
Raised Fist0
DSA C#programming~5 mins

Binary Search Recursive Approach in DSA C# - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main idea behind the binary search algorithm?
Binary search works by repeatedly dividing a sorted list in half to find a target value quickly. It compares the target with the middle element and decides which half to search next.
Click to reveal answer
beginner
What is the base case in a recursive binary search?
The base case occurs when the search range is empty (start index > end index), meaning the target is not found, or when the middle element equals the target.
Click to reveal answer
beginner
How does the recursive call change the search range in binary search?
If the target is less than the middle element, the search continues on the left half (start to mid - 1). If greater, it continues on the right half (mid + 1 to end).
Click to reveal answer
beginner
Why must the input array be sorted for binary search to work?
Binary search relies on the order of elements to decide which half to search next. Without sorting, it cannot correctly eliminate half the elements each step.
Click to reveal answer
beginner
What is the time complexity of binary search and why?
The time complexity is O(log n) because the search space halves with each recursive call, quickly narrowing down to the target or concluding it is absent.
Click to reveal answer
In recursive binary search, what happens if the target is equal to the middle element?
AReturn -1 indicating not found
BSearch the left half of the array
CSearch the right half of the array
DReturn the middle index as the found position
What condition ends the recursion in binary search when the target is not found?
AMiddle index equals start index
BStart index becomes greater than end index
CTarget is less than middle element
DTarget is greater than middle element
Which of these is required for binary search to work correctly?
AArray must be reversed
BArray must be unsorted
CArray must be sorted
DArray must contain only unique elements
What is the time complexity of binary search?
AO(log n)
BO(n log n)
CO(n)
DO(1)
In recursive binary search, if the target is less than the middle element, what is the next step?
ASearch the left half (start to mid - 1)
BSearch the right half (mid + 1 to end)
CReturn the middle index
DReturn -1
Explain how recursive binary search works step-by-step on a sorted array.
Think about dividing the array and calling the function again with smaller ranges.
You got /6 concepts.
    Describe why the array must be sorted for binary search and what happens if it is not.
    Consider how you decide which half to search next.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main idea behind the Binary Search Recursive Approach when searching for a value in a sorted array?
      easy
      A. Use a queue to store elements and search iteratively.
      B. Check every element one by one from start to end.
      C. Sort the array first and then search linearly.
      D. Divide the array into halves and search recursively in the half where the value can be.

      Solution

      1. Step 1: Understand binary search logic

        Binary search works by dividing the sorted array into two halves and deciding which half to search next based on the middle element.
      2. Step 2: Recognize recursive approach

        The recursive approach calls the same search function on the half where the target value may exist, reducing the search space each time.
      3. Final Answer:

        Divide the array into halves and search recursively in the half where the value can be. -> Option D
      4. Quick Check:

        Binary search = divide and conquer [OK]
      Hint: Remember: binary search splits array, searches half recursively [OK]
      Common Mistakes:
      • Thinking binary search checks every element linearly
      • Not realizing array must be sorted first
      • Confusing iterative and recursive approaches
      2. Which of the following is the correct base case condition in a recursive binary search function in C#?
      easy
      A. if (array[start] == target) return start;
      B. if (start == end) return start;
      C. if (start > end) return -1;
      D. if (end < start) return 0;

      Solution

      1. Step 1: Identify base case meaning

        The base case stops recursion when the search space is invalid, meaning start index is greater than end index.
      2. Step 2: Match condition to code

        The condition if (start > end) return -1; correctly indicates the target is not found.
      3. Final Answer:

        if (start > end) return -1; -> Option C
      4. Quick Check:

        Base case = invalid range returns -1 [OK]
      Hint: Base case: start index passes end index means not found [OK]
      Common Mistakes:
      • Using wrong comparison like start == end as base case
      • Returning 0 which can be a valid index
      • Not handling base case causing infinite recursion
      3. What will be the output of the following C# code snippet?
      int[] arr = {2, 4, 6, 8, 10};
      int result = BinarySearch(arr, 0, arr.Length - 1, 6);
      Console.WriteLine(result);
      
      int BinarySearch(int[] array, int start, int end, int target) {
          if (start > end) return -1;
          int mid = (start + end) / 2;
          if (array[mid] == target) return mid;
          else if (array[mid] > target) return BinarySearch(array, start, mid - 1, target);
          else return BinarySearch(array, mid + 1, end, target);
      }
      medium
      A. 2
      B. 3
      C. -1
      D. 1

      Solution

      1. Step 1: Trace initial call and mid calculation

        Initial call: start=0, end=4, mid=(0+4)/2=2. array[2]=6 matches target 6.
      2. Step 2: Return mid index

        Since array[mid] == target, function returns 2 immediately.
      3. Final Answer:

        2 -> Option A
      4. Quick Check:

        Target found at index 2 [OK]
      Hint: Check mid index first; if match, return immediately [OK]
      Common Mistakes:
      • Miscomputing mid index
      • Returning wrong index due to off-by-one errors
      • Confusing array values with indices
      4. Identify the error in this recursive binary search function and choose the correct fix:
      int BinarySearch(int[] array, int start, int end, int target) {
          if (start >= end) return -1;
          int mid = (start + end) / 2;
          if (array[mid] == target) return mid;
          else if (array[mid] > target) return BinarySearch(array, start, mid - 1, target);
          else return BinarySearch(array, mid + 1, end, target);
      }
      medium
      A. Change mid calculation to mid = (start + end + 1) / 2;
      B. Change base case to if (start > end) return -1;
      C. Return 0 instead of -1 in base case.
      D. Remove the base case entirely.

      Solution

      1. Step 1: Analyze base case condition

        The base case uses start >= end, which wrongly excludes the case when start == end, missing the last element check.
      2. Step 2: Correct base case to allow checking when start == end

        Changing to start > end ensures the last element is checked before stopping recursion.
      3. Final Answer:

        Change base case to if (start > end) return -1; -> Option B
      4. Quick Check:

        Base case must allow start == end check [OK]
      Hint: Base case should be start > end, not start >= end [OK]
      Common Mistakes:
      • Stopping recursion too early with wrong base case
      • Changing mid calculation unnecessarily
      • Returning 0 which can be a valid index
      5. Given a sorted array with possible duplicate values, how can you modify the recursive binary search to find the first occurrence of a target value?
      hard
      A. When array[mid] == target, continue searching left half to find earlier occurrence.
      B. Return mid immediately when array[mid] == target.
      C. Search right half only when array[mid] == target.
      D. Use linear search after binary search to find first occurrence.

      Solution

      1. Step 1: Understand duplicates and first occurrence

        Duplicates mean target can appear multiple times; to find first occurrence, we must check if earlier indices also have the target.
      2. Step 2: Modify recursion to search left half when target found

        When array[mid] == target, recursively search left half to find if target appears earlier; if none found, return current mid.
      3. Final Answer:

        When array[mid] == target, continue searching left half to find earlier occurrence. -> Option A
      4. Quick Check:

        Find first occurrence by searching left half on match [OK]
      Hint: On match, search left half to find first occurrence [OK]
      Common Mistakes:
      • Returning first found index without checking left side
      • Searching right half on match which finds last occurrence
      • Using linear search after binary search unnecessarily
      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