15 size_t lo = 0, hi = n - 1;
17 size_t mid = lo + (hi - lo) / 2;
18 if (arr[mid] == target)
return mid;
19 if (arr[mid] < target) {
31 size_t lo = 0, hi = n - 1;
33 size_t mid = lo + (hi - lo) / 2;
34 int cmp = strcmp(arr[mid], target);
35 if (cmp == 0)
return mid;
48 size_t mid = lo + (hi - lo) / 2;
49 if (arr[mid] == target)
return mid;
size_t binary_search_strings(const char *const *arr, size_t n, const char *target)
size_t binary_search_ints_recursive(const int *arr, size_t lo, size_t hi, int target)
size_t binary_search_ints(const int *arr, size_t n, int target)
Binary search on sorted arrays. O(log n) time, O(1) space.
#define BSEARCH_NOT_FOUND