diff --git a/bs.cpp b/bs.cpp new file mode 100644 index 0000000..98ed7a6 --- /dev/null +++ b/bs.cpp @@ -0,0 +1,35 @@ +#include +using namespace std; + + +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]); + + printf("Check if a particular key is present\n"); + int key; + scanf("%d", &key); + + int result = binarySearch(arr, 0, n-1, key); + if (result == -1) { + printf("Element is not present in array\n"); + } + else { + printf("Element is present at index %d\n", result); + } + return 0; +} diff --git a/bs.txt b/bs.txt new file mode 100644 index 0000000..c8aa840 --- /dev/null +++ b/bs.txt @@ -0,0 +1,32 @@ + +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]); + + printf("Check if a particular key is present\n"); + int key; + scanf("%d", &key); + + int result = binarySearch(arr, 0, n-1, key); + if (result == -1) { + printf("Element is not present in array\n"); + } + else { + printf("Element is present at index %d\n", result); + } + return 0; +}