Categories
Algorithm Algorithms & Design Search

Exponential Search

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

Leave a comment

Design a site like this with WordPress.com
Get started