diff options
Diffstat (limited to 'comp/work/35')
-rwxr-xr-x | comp/work/35/binaryseach | bin | 0 -> 15456 bytes | |||
-rw-r--r-- | comp/work/35/binaryseach.c | 44 |
2 files changed, 44 insertions, 0 deletions
diff --git a/comp/work/35/binaryseach b/comp/work/35/binaryseach Binary files differnew file mode 100755 index 0000000..1794f4f --- /dev/null +++ b/comp/work/35/binaryseach diff --git a/comp/work/35/binaryseach.c b/comp/work/35/binaryseach.c new file mode 100644 index 0000000..e6ce234 --- /dev/null +++ b/comp/work/35/binaryseach.c @@ -0,0 +1,44 @@ +#include <stdio.h> +#include <stdbool.h> +#include <stdlib.h> +#include <string.h> + +char *arr[] = { + "ali", + "ben", + "carl", + "joe", + "ken", + "lara", + "mo", + "oli", + "pam", + "stan", + "tara" +}; +int len = 11; + +char *binsearch(char *tofind){ + int l = len/2; + char *start = arr[0]; + char *end = arr[len]; + char *mid = arr[l]; + + while (mid != tofind){ + if (strcmp(mid, tofind) < 0){ + start = mid; + l /= 2; + mid = arr[len - l]; + }else { + end = mid; + l /= 2; + mid = arr[len - l] + } + } + + return start; +} + +int main(){ + binsearch("pam"); +} |