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