binary search recursive c++ code example
Example 1: binary search in c++
#include<iostream>
using namespace std;
int binarySearch(int arr[], int p, int r, int num) {
if (p <= r) {
int mid = (p + r)/2;
if (arr[mid] == num)
return mid ;
if (arr[mid] > num)
return binarySearch(arr, p, mid-1, num);
if (arr[mid] < num)
return binarySearch(arr, mid+1, r, num);
}
return -1;
}
int main(void) {
int arr[] = {1, 3, 7, 15, 18, 20, 25, 33, 36, 40};
int n = sizeof(arr)/ sizeof(arr[0]);
int num = 33;
int index = binarySearch (arr, 0, n-1, num);
if(index == -1)
cout<< num <<" is not present in the array";
else
cout<< num <<" is present at index "<< index <<" in the array";
return 0;
}
Example 2: binary search iterative
import java.io.*;
class Binary_Search
{
public static void main(String[] args) throws Exception
{
Binary_Search obj = new Binary_Search();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Insert the length of the Array : ");
int n = Integer.parseInt(br.readLine());
int arr[] = new int[n];
System.out.println("Insert elements into the array : ");
for(int i=0;i<n;i++)
{
arr[i] = Integer.parseInt(br.readLine());
}
System.out.println("Enter the num which you want to Search : ");
int num = Integer.parseInt(br.readLine());
obj.logic(arr,num);
}
void logic(int arr[],int num)
{
int r = arr.length - 1;
int l = 0;
int mid;
while(l<=r)
{
mid = l + (r-l)/2;
if(arr[mid] == num)
{
System.out.println("Number found at "+mid+"th index");
break;
}
else if(arr[mid]>num)
{
r = mid - 1;
}
else
{
l = mid + 1;
}
}
}
}