Binary Search in C

Written: August 22, 2026

Binary search halves the remaining range each step — but only works on sorted data.

This walkthrough keeps the logic small and readable so you can type it, run it, and then change one input at a time to see what happens.

What you will build

You will maintain low/high indices and compare the midpoint until the key is found or the range is empty.

  • Set low = 0, high = n – 1
  • While low <= high, mid = (low + high) / 2
  • Move low/high based on comparison with key

Working C example

#include <stdio.h>

int binary_search(int a[], int n, int key) {
    int low = 0, high = n - 1, mid;
    while (low <= high) {
        mid = low + (high - low) / 2;
        if (a[mid] == key) return mid;
        if (a[mid] < key) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}

int main(void) {
    int a[] = {2, 5, 8, 12, 16, 23, 38};
    int n = 7, key = 16, idx;
    idx = binary_search(a, n, key);
    if (idx >= 0) printf("Found at index %d\n", idx);
    else printf("Not found\n");
    return 0;
}

Advertisement

How the logic works

Read the program top to bottom: includes and main first, then the statements that change variables, then the print that proves the result.

If your output looks wrong, print the variables before and after the critical lines. That single habit catches most beginner bugs faster than rewriting the whole file.

Prefer mid = low + (high – low) / 2 to avoid overflow on very large indices.

Advertisement

Common mistakes

Forgetting a semicolon, using the wrong format specifier in printf/scanf, and mixing up assignment (=) with comparison (==) are the usual culprits.

Compile with warnings enabled (`gcc -Wall`) so the compiler points at risky casts and unused variables before you chase them by hand.

Try this next

Change the sample inputs, add a second test case, and briefly note what stayed the same. Teaching yourself with tiny experiments sticks better than copying a longer program you never run.

When you can explain every line without looking, you are ready for the next exercise in the series.

Keep learning

If this walkthrough on binary search in c helped, open the code again and change one input or assumption. Small experiments beat rereading the same example.

Want more step-by-step tutorials like this? Browse blog.xqa.io — and tell us which topic you want next.

Advertisement

Previous Article

C Program Using a Student Record Structure

Next Article

Check if a File Exists in Python Without Exceptions

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨