From 34a6fd157d3b6da27d8fd73abcc4da0e50b81efe Mon Sep 17 00:00:00 2001 From: Rimjhim28 Date: Sun, 7 Oct 2018 01:11:38 +0530 Subject: [PATCH] Add recursive binary search using java --- binary_search/using_recursion_in_java.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 binary_search/using_recursion_in_java.java diff --git a/binary_search/using_recursion_in_java.java b/binary_search/using_recursion_in_java.java new file mode 100644 index 00000000..ce83ea89 --- /dev/null +++ b/binary_search/using_recursion_in_java.java @@ -0,0 +1,46 @@ +// Java implementation of recursive Binary Search +class BinarySearch +{ + // Returns index of x if it is present in arr[l.. + // r], else return -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; + } + + // Driver method to test above + public static void main(String args[]) + { + BinarySearch ob = new BinarySearch(); + int arr[] = {2,3,4,10,40}; + int n = arr.length; + int x = 10; + int result = ob.binarySearch(arr,0,n-1,x); + if (result == -1) + System.out.println("Element not present"); + else + System.out.println("Element found at index " + + result); + } +} \ No newline at end of file