public class ExponentialSearch {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr [] = {2,4,5,6,7,8,9,10,11,12,13,14,15};
int elementToSearch = 12;
System.out.println("Searching for the element ::"+elementToSearch);
int result = exponentialSearch(arr, arr.length,elementToSearch);
System.out.println("Element found at index ::"+result);
}
public static int exponentialSearch(int arr[],int len, int elementToSearch){
if(arr[0]==elementToSearch)
return 0;
int i =2;
while(i<len && arr[i]<elementToSearch){
i=i*2;
}
System.out.println("i ::"+i);
int endIndex = (i>len)?len:i;
BinarySearch binary = new BinarySearch();
return binary.binarySearch(arr, i/2,endIndex, elementToSearch);
}
}
Output :
Searching for the element ::12 i ::16 Element found at index ::9