Find sorted array rotation size
Problem:
Implement the following function, FindSortedArrayRotation, which takes as its input an array of unique integers that has been sorted in ascending order, then rotated by an unknown amount X where 0 <= X <= (arrayLength – 1). An array rotation by amount X moves every element array[i] to array[(i + X) % arrayLength]. FindSortedArrayRotation discovers and returns X by examining the array.
Solution:
1
2
3
4
5
6
7
8
9
10
11
12
13
| int FindSortedArrayRotation( int A[], int N) { int L = 0 ; int R = N - 1 ; while (L < R) { int M = (L + R)/ 2 ; if (A[M] > A[R]) L = M + 1 ; else R = M; } return L; } |
Click here for more Programming Interview Questions
No comments:
Post a Comment