From e8940eff29e6fde673890acbedd15c0997256a41 Mon Sep 17 00:00:00 2001 From: nikhilhassija Date: Mon, 31 Oct 2016 22:01:01 +0530 Subject: [PATCH] Added Iterative implementation of Binary Seach in C --- c/binarysearch_iterative.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 c/binarysearch_iterative.c diff --git a/c/binarysearch_iterative.c b/c/binarysearch_iterative.c new file mode 100644 index 0000000..6803a8c --- /dev/null +++ b/c/binarysearch_iterative.c @@ -0,0 +1,32 @@ + +/* !\brief A recursive implementation of Binary Search + * + * \param int * A - Array to search the value (assumed to be sorted) + * \param int start - start index for search + * \param int end - end index for search (start <= end <= sizeof(A)) + * \param int val - value to search for + * + * \returns index of value. + * -1 - if value is not found + */ + +int binary_search(int * A, int start, int end, int val) +{ + int l = start; + int r = end; + + while(l < r) + { + int mid = (l + r) / mid; + + if(A[mid] == val) + return mid; + + if(A[mid] < val) + r = mid - 1; + else + l = mid + 1; + } + + return -1; +} \ No newline at end of file