From a3aa2a385998290e349359a433187bbf7c6dfe06 Mon Sep 17 00:00:00 2001 From: Bharathm1 <46574246+Bharathm1@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:16:55 +0530 Subject: [PATCH] Added C program for Binary search --- README.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 88b7997..83c8da5 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,50 @@ Catalog #2370 has 65 in stock Catalog #15320 has 82 in stock Catalog #19967 has 45 in stock Catalog #19968 not found -``` +``` +//// C program to implement recursive Binary Search +#include + +// A recursive binary search function. It returns +// location of x in given array arr[l..r] is present, +// otherwise -1 +int binarySearch(int arr[], int l, int r, int x) +{ + if (r >= l) { + int mid = l + (r - l) / 2; + + // If the element is present at the middle + // itself + if (arr[mid] == x) + return mid; + + // If element is smaller than mid, then + // it can only be present in left subarray + if (arr[mid] > x) + return binarySearch(arr, l, mid - 1, x); + + // Else the element can only be present + // in right subarray + return binarySearch(arr, mid + 1, r, x); + } + + // We reach here when element is not + // present in array + 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; +} +// 4. Submit the link to your GitHub repository to google classroom