public class TernarySearch {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
int elementToSearch = 2;
System.out.println("Searching for the element ::"+elementToSearch);
int resultIndex = tarnarySearch(arr,elementToSearch,0,arr.length-1);
System.out.println("element found at index ::"+resultIndex);
}
public static int tarnarySearch(int arr[],int elementToSearch,int startIndex, int endIndex){
int mid1 = startIndex+(endIndex-startIndex)/3;
int mid2 = startIndex + ((endIndex-startIndex)/3)+((endIndex-startIndex)/3);
if(arr[startIndex]==elementToSearch)
return startIndex;
else if(arr[endIndex]==elementToSearch)
return endIndex;
else if(arr[mid1]==elementToSearch)
return mid1;
else if(arr[mid1]>elementToSearch)
return tarnarySearch(arr,elementToSearch,startIndex,mid1-1);
else if(arr[mid2]==elementToSearch)
return mid2;
else if(arr[mid2]>elementToSearch)
return tarnarySearch(arr,elementToSearch,mid1,mid2-1);
else if(arr[endIndex]>=elementToSearch)
return tarnarySearch(arr,elementToSearch,mid2,endIndex);
return -1;
}
}
Output :
Searching for the element ::2 element found at index ::1