school

thing1's amazing school repo
Log | Files | Refs | Submodules | README

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 }