summaryrefslogtreecommitdiff
path: root/comp/work/35/binaryseach.c
diff options
context:
space:
mode:
Diffstat (limited to 'comp/work/35/binaryseach.c')
-rw-r--r--comp/work/35/binaryseach.c44
1 files changed, 44 insertions, 0 deletions
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");
+}