## Interview Question

Software Engineer / Developersint FindRotationIndex(int a[], int start, int end)

{

if(a[start]<=a[end])

return 0;

int mid = (start+end)/2;

if(a[mid] > a[mid+1])

return mid+1;

if(a[mid-1] > a[mid])

return mid;

if(a[mid+1] > a[end])

FindRotationIndex(a,mid+1,end);

else

FindRotationIndex(a,start,mid-1);

}

int findSeg(int* A, int len){

- anwing October 21, 2010int l = 0;

int r = len;

if (A[len-1] > A[0])

return 0;

while (l<r){

int mid = (l+r)/2;

if (mid == 0 || mid == len-1 || A[mid] < A[mid+1] && A[mid] < A[mid-1])

return mid;

else if (A[mid] < A[0])

r = mid;

else

l = mid+1;

}

return -1;

}