how to find a number in a circularly sorted array?
Anonimo
public class SearchCircularSorted { public static void main(String [] args){ int a[]={8,9,10,1,2,3,4,5,6,7}; System.out.println(circularBinSearch(a,3,0,9)); } public static int circularBinSearch ( int A[],int key, int low, int high ) { if (low > high) { return -1; // not found } int mid = (low + high) / 2; int steps = 0; steps++; if (A[mid] == key) { return mid; } else if (key key)) ? circularBinSearch(A,key, mid + 1, high) : circularBinSearch(A,key, low, mid - 1); } else // key > A[mid] { return ((A[mid] A[high])) ? circularBinSearch(A,key, low, mid - 1) : circularBinSearch(A,key, mid + 1, high); } } }