Roadmap › Coding Round Practice (DSA in C#) › Module: Sorting, Searching and Recursion
Lessons in this course (14)
10. Binary search
Basic★ Must knowLesson 10 of 14
csharp
// O(log n) on a sorted array
static int BinarySearch(int[] a, int target)
{
int lo = 0, hi = a.Length - 1;
while (lo <= hi)
{
int mid = lo + (hi - lo) / 2; // avoids int overflow of (lo + hi)
if (a[mid] == target) return mid;
if (a[mid] < target) lo = mid + 1; else hi = mid - 1;
}
return -1;
}
// Built-in: Array.BinarySearch(a, target), List<T>.BinarySearch