Bird
Raised Fist0
DSA Cprogramming~10 mins

Binary Search Iterative Approach in DSA C - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize the start index for binary search.

DSA C
int start = [1];
Drag options to blanks, or click blank then click option'
A-1
B1
C0
Dn
Attempts:
3 left
💡 Hint
Common Mistakes
Setting start to 1 skips the first element.
Setting start to -1 causes invalid index access.
2fill in blank
medium

Complete the code to calculate the middle index safely.

DSA C
int mid = start + ([1] - start) / 2;
Drag options to blanks, or click blank then click option'
Aend
Bstart
Cmid
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using (start + end) / 2 can cause overflow.
Using mid in calculation before assignment is incorrect.
3fill in blank
hard

Fix the error in the loop condition to continue searching while valid.

DSA C
while (start [1] end) {
Drag options to blanks, or click blank then click option'
A<=
B>
C<
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using only less than skips checking when start equals end.
Using greater than reverses the logic.
4fill in blank
hard

Fill both blanks to update the search range after checking mid value.

DSA C
if (arr[mid] < target) {
    start = mid [1] 1;
} else {
    end = mid [2] 1;
}
Drag options to blanks, or click blank then click option'
A+
B-
C*
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using multiplication or division instead of addition or subtraction.
Not adjusting start or end correctly causes infinite loops.
5fill in blank
hard

Fill all three blanks to complete the binary search function returning index or -1.

DSA C
int binarySearch(int arr[], int n, int target) {
    int start = 0, end = n [1] 1;
    while (start [2] end) {
        int mid = start + (end - start) / 2;
        if (arr[mid] == target) {
            return [3];
        } else if (arr[mid] < target) {
            start = mid + 1;
        } else {
            end = mid - 1;
        }
    }
    return -1;
}
Drag options to blanks, or click blank then click option'
A-
B<=
Cmid
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Setting end to n causes out-of-bounds access.
Using < instead of <= in loop misses last element.
Returning start or end instead of mid is incorrect.

Practice

(1/5)
1. What is the main purpose of the while loop in the iterative binary search algorithm?
easy
A. To swap elements in the array
B. To sort the array before searching
C. To print all elements in the array
D. To repeatedly divide the search range until the target is found or range is empty

Solution

  1. Step 1: Understand the role of the loop

    The while loop runs as long as the search range is valid, narrowing down the range by half each time.
  2. Step 2: Identify the loop's goal

    The loop stops when the target is found or when the search range becomes empty, meaning the target is not present.
  3. Final Answer:

    To repeatedly divide the search range until the target is found or range is empty -> Option D
  4. Quick Check:

    Loop narrows search range until target found or range empty [OK]
Hint: Loop halves search range until target found or no range left [OK]
Common Mistakes:
  • Thinking the loop sorts the array
  • Assuming the loop swaps elements
  • Believing the loop prints elements
2. Which of the following is the correct way to calculate the middle index in an iterative binary search in C to avoid overflow?
easy
A. int mid = (low + high) / 2;
B. int mid = (low - high) / 2;
C. int mid = low + (high - low) / 2;
D. int mid = (low * high) / 2;

Solution

  1. Step 1: Understand overflow risk

    Adding low + high directly can overflow if both are large integers.
  2. Step 2: Use safe middle calculation

    Calculating low + (high - low) / 2 avoids overflow by subtracting first.
  3. Final Answer:

    int mid = low + (high - low) / 2; -> Option C
  4. Quick Check:

    Safe mid calculation avoids overflow [OK]
Hint: Use low + (high - low) / 2 to prevent overflow [OK]
Common Mistakes:
  • Using (low + high) / 2 causing overflow
  • Subtracting incorrectly in middle calculation
  • Multiplying indices which is wrong
3. What will be the output of the following C code snippet using iterative binary search?
int arr[] = {2, 4, 6, 8, 10};
int n = 5;
int target = 6;
int low = 0, high = n - 1;
int mid;
while (low <= high) {
    mid = low + (high - low) / 2;
    if (arr[mid] == target) {
        printf("%d", mid);
        break;
    } else if (arr[mid] < target) {
        low = mid + 1;
    } else {
        high = mid - 1;
    }
}
medium
A. 3
B. 2
C. 1
D. -1

Solution

  1. Step 1: Trace the binary search steps

    Initial low=0, high=4, mid=2. arr[2]=6 matches target 6.
  2. Step 2: Print the mid index

    Since arr[mid] == target, the code prints 2 and breaks the loop.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Target found at index 2 [OK]
Hint: Check mid index where target matches first [OK]
Common Mistakes:
  • Confusing index with value
  • Not updating low/high correctly
  • Assuming target not found
4. Identify the error in the following iterative binary search code snippet:
int binarySearch(int arr[], int n, int target) {
    int low = 0, high = n - 1;
    while (low < high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == target) {
            return mid;
        } else if (arr[mid] < target) {
            low = mid + 1;
        } else {
            high = mid - 1;
        }
    }
    return -1;
}
medium
A. The loop condition should be while (low <= high)
B. The mid calculation causes overflow
C. The function returns mid instead of value
D. The array is not sorted before searching

Solution

  1. Step 1: Analyze loop condition

    The loop uses while (low < high), which misses checking when low equals high.
  2. Step 2: Correct loop condition

    It should be while (low <= high) to include the last element in search.
  3. Final Answer:

    The loop condition should be while (low <= high) -> Option A
  4. Quick Check:

    Loop must include low == high to check last element [OK]
Hint: Use <= in loop to check all elements including last [OK]
Common Mistakes:
  • Using < instead of <= in loop condition
  • Ignoring overflow in mid calculation (not here)
  • Confusing return value with index
  • Assuming array needs sorting inside function
5. Given a sorted array int arr[] = {1, 3, 5, 7, 9, 11, 13}, write the iterative binary search steps to find the target 10. What will be the final output of the search function?
hard
A. -1 (target not found)
B. Index 4
C. Index 5
D. Index 3

Solution

  1. Step 1: Trace search for target 10

    Initial low=0, high=6, mid=3 (arr[3]=7). Since 7 < 10, low=mid+1=4.
  2. Step 2: Continue search narrowing range

    Now low=4, high=6, mid=5 (arr[5]=11). Since 11 > 10, high=mid-1=4.
  3. Step 3: Final check

    Now low=4, high=4, mid=4 (arr[4]=9). Since 9 < 10, low=mid+1=5. Now low=5 > high=4, loop ends.
  4. Final Answer:

    -1 (target not found) -> Option A
  5. Quick Check:

    Target 10 not in array, returns -1 [OK]
Hint: If target not found, binary search returns -1 [OK]
Common Mistakes:
  • Assuming closest smaller element index is returned
  • Not updating low/high correctly
  • Stopping search too early
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