Answers for "binary search recursive in c++"

0

binary search recursive in c++

#include <bits/stdc++.h>
using namespace std;
 
// 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 x = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
    int result = binarySearch(arr, 0, n - 1, x);
    (result == -1) ? cout << "Element is not present in array"
                   : cout << "Element is present at index " << result;
    return 0;
}
Posted by: Guest on November-09-2021
0

recursive binary search

import java.util.Scanner;

public class BinarySearching {
    public static void main(String[] argh){
        System.out.println("Enter the size of the Array: ");
        Scanner input = new Scanner(System.in);
        int size = input.nextInt();
        int [] array = new int[size];

       int[] binarySort = enterValues(array,size);

       System.out.println("Which number you want to find? ");
       int numberTofind = input.nextInt();

       int low =0;
       int high = binarySort.length-1;

       if(findNumber(binarySort,numberTofind,low,high) == -1){
           System.out.println("The number you entered dose not exist");
           return;
       }

       System.out.println("the number is at index: "+findNumber(binarySort,numberTofind,low,high));


    }
    public static int[] enterValues(int [] arr,int size){
        System.out.println("Enter Sorted Array: ");
          for(int i=0 ; i<size;++i){
            arr[i] = i;
          }
        return arr;
    }

    public static int findNumber(int [] sortedArray, int findThisNumber,int low , int high ){
            int midle = (low+high)/2;
            if(sortedArray[midle]==findThisNumber)
            { return midle;
            }else if(sortedArray[midle] < findThisNumber)
            {
                return findNumber(sortedArray,findThisNumber,low=midle+1,high);
            }else if(sortedArray[midle] > findThisNumber)
            {
                return findNumber(sortedArray,findThisNumber,low,high=midle-1);
            }
        return -1;
    }

}
Posted by: Guest on July-17-2021

Code answers related to "binary search recursive in c++"

Browse Popular Code Answers by Language