search element in a circular sorted array

int main() {
int A[] = {12,14,18,21,3,6,8,9};
int n = 8;
int x = 6;
int index = binarySearch(A,n,x);
if(index == -1){
  printf("%d not found in the array",x);
}
else{
  printf("%d is found at index %d",x,index);
}
return 0;
}
int binarySearch(int A[],int n, int x){
int low = 0,high = n-1;
while(low <= high){
int  mid = (low + high)/2;
  if(x == A[mid])
      return mid;
     
  if(A[mid]<=A[high]){
    if(x>A[mid] && x<=A[high])
      low = mid+1;
    else
      high = mid-1;}
  else{
    if(x>=A[low] && x <A[mid])
      high = mid-1;
    else
      low = mid+1;}
  }
    return -1;
}
 
 

Comments

Popular posts from this blog

Finding the second largest in an array