From 7e8e0a37a6acfa04c0c45906a3841032964d0c36 Mon Sep 17 00:00:00 2001 From: tejaspundpal <96496782+tejaspundpal@users.noreply.github.com> Date: Wed, 11 Jan 2023 18:13:37 +0530 Subject: [PATCH] Java dsa-Recursion --- Recursion/BinarySearchRecursion.java | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Recursion/BinarySearchRecursion.java diff --git a/Recursion/BinarySearchRecursion.java b/Recursion/BinarySearchRecursion.java new file mode 100644 index 0000000..7c47b69 --- /dev/null +++ b/Recursion/BinarySearchRecursion.java @@ -0,0 +1,57 @@ +package Java_DSA.Searching; + +import java.util.*; + +public class BinarySearchRecursion +{ + public static int search(int[] arr,int start,int n, int element){ + int first = start; + int last = n-1; + if(first == last){ + if (arr[first]==element) + { + return first; + } + } + else if(first < last){ + int mid = (first + last)/2; + if (element < arr[mid]) { + last = mid - 1; + return search(arr,first,mid-1,element); + } + else if(element > arr[mid]){ + first = mid + 1; + return search(arr,mid + 1,last,element); + } + else { + return mid; + } + } + else{ + return -1; + } + return -1; + } + + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("Enter no of elements : "); + int n = sc.nextInt(); + + int[] arr = new int[n]; + System.out.println("Enter the elements : "); + for(int i = 0;i < n;i++){ + arr[i] = sc.nextInt(); + } + System.out.println("Enter the searching element : "); + int searchvalue = sc.nextInt(); + + int result = search(arr,0,n,searchvalue); + if(result == -1){ + System.out.println("Element is not present."); + } + else{ + System.out.println("Element is present at index " + result); + } + } +}