What if you could find a needle in a haystack in just a few steps instead of searching every straw?
Binary Search vs Linear Search Real Cost Difference in DSA C++ - Why the Distinction Matters
Imagine you have a huge phone book with thousands of names. You want to find one person's phone number. You start at the first page and look at every name one by one until you find the right one.
This way takes a lot of time because you might have to check many names before finding the one you want. If the book is very big, it becomes slow and tiring. Also, you can easily lose your place or make mistakes while flipping pages.
Binary search uses the fact that the phone book is sorted. Instead of checking every name, you open the book in the middle and decide if the name you want is before or after. Then you repeat this on the smaller half. This way, you quickly narrow down where the name is, saving a lot of time and effort.
for (int i = 0; i < n; i++) { if (arr[i] == target) return i; } return -1;
int left = 0, right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) return mid; else if (arr[mid] < target) left = mid + 1; else right = mid - 1; } return -1;
It enables lightning-fast searching in large sorted lists, making programs much faster and more efficient.
When you search for a contact on your phone, the phone uses a method like binary search to find the name quickly instead of scrolling through every contact.
Linear search checks every item one by one, which is slow for big lists.
Binary search splits the list and quickly narrows down the search, saving time.
Using binary search requires the list to be sorted first.