import java.util.Scanner; public class BinarySearchIterativeRecursive{ public static int binarySearchIterative(int a[], int search){ int l = 0, r = a.length-1; while (l <=r){ int mid = (l + r)/2; if (a[mid] == search){ return mid; } else if (search < a[mid]){ r = mid -1; } else{ l = mid + 1; } } return -1; } public static int binarySearchRecursive(int a[], int l, int r, int search){ int mid = (l+r)/2; if (a[mid] == search){ return mid; } else if (l > r){ return -1; } else if (search < a[mid]){ return binarySearchRecursive (a, l, mid -1, search) ; } else{ return binarySearchRecursive (a, mid+1, r, search) ; } } public static void output(int cell, int value){ if (cell == -1){ System.out.println (value + " is not found in the array"); } else{ System.out.println (value + " is found in Cell#" + cell + " of the array"); } } public static void printArray(int a[]){ for (int i : a){ System.out.print(i + " " ); } System.out.println(); } public static void main (String args[]){ int a[] = {10, 20, 34, 90, 123, 900}; System.out.println ("Array : " ); printArray(a); Scanner scan = new Scanner (System.in); System.out.println ("Input search value"); int search = scan.nextInt(); System.out.println ("Searching Iteratively"); int cell = binarySearchIterative(a, search); output(cell, search); System.out.println ("Searching Recursively"); cell = binarySearchRecursive(a, 0, a.length-1, search); output(cell, search); } }