binaryseach.c (542B)
1 #include <stdio.h> 2 #include <stdbool.h> 3 #include <stdlib.h> 4 #include <string.h> 5 6 char *arr[] = { 7 "ali", 8 "ben", 9 "carl", 10 "joe", 11 "ken", 12 "lara", 13 "mo", 14 "oli", 15 "pam", 16 "stan", 17 "tara" 18 }; 19 int len = 11; 20 21 char *binsearch(char *tofind){ 22 int l = len/2; 23 char *start = arr[0]; 24 char *end = arr[len]; 25 char *mid = arr[l]; 26 27 while (mid != tofind){ 28 if (strcmp(mid, tofind) < 0){ 29 start = mid; 30 l /= 2; 31 mid = arr[len - l]; 32 }else { 33 end = mid; 34 l /= 2; 35 mid = arr[len - l] 36 } 37 } 38 39 return start; 40 } 41 42 int main(){ 43 binsearch("pam"); 44 }