From d15acf8cb75ce989797f8b94bcd8b8e119bdfb0e Mon Sep 17 00:00:00 2001 From: Somyajit Chakraborty Sam Date: Wed, 9 Oct 2019 17:26:40 +0530 Subject: [PATCH] Create bs0319.c Simple Recursive Binary Search --- bs0319.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 bs0319.c diff --git a/bs0319.c b/bs0319.c new file mode 100644 index 0000000..0b1de01 --- /dev/null +++ b/bs0319.c @@ -0,0 +1,31 @@ + +// A recursive binary search function. It returns location of x in +//code by Somyajit Chakraborty +#include + + +int binarySearch(int arr[], int l, int r, int x) +{ + if (r >= l) + { + int mid = l + (r - l)/2; + + if (arr[mid] == x) return mid; + if (arr[mid] > x) return binarySearch(arr, l, mid-1, x); + + return binarySearch(arr, mid+1, r, x); + } + + return -1; +} + +int main(void) +{ + int arr[] = {2, 3, 4, 10, 40}; + int n = sizeof(arr)/ sizeof(arr[0]); + int x = 10; + int result = binarySearch(arr, 0, n-1, x); + (result == -1)? printf("Element is not present in array") + : printf("Element is present at index %d", result); + return 0; +}