binary search implementation code example

Example 1: binary search algorithm

#include <bits/stdc++.h>

using namespace std;

int binarySearch(int arr[], int l, int h, int key){
    if(l<=h){
        int mid = l + (h-l)/2;

        if(arr[mid] == key){
            return mid;
        }

        else if(arr[mid] > key){
            return binarySearch(arr, l, mid-1, key);
        }

        else if(arr[mid] < key){
            return binarySearch(arr,mid+1, h, key);
        }
    }       

    return -1;
}

int main(){
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int n = sizeof(arr)/sizeof(arr[0]);
    int key = 7;

    int result = binarySearch(arr,0,n-1,key);

    (result==-1)
        ? cout << "Element is not found in the array" << endl
        : cout << "Element is found at index " << result;

    return 0;

}

Example 2: binary search iterative

// Binary Search using Iterative Approach

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;
			}
		}
	}
}