Giving a circular sorted array Ex: [7,9,3,5,6], write an algorithm that finds the smaller element index.
Anonimo
int findMinElement(int arr[], int size) { int low = 0; int high = size - 1; while (low <= high) { int middle = (low + high)/2; if ((arr[middle] < arr[middle - 1]) && (arr[middle] < arr[middle + 1])) { return arr[middle]; } else if (arr[middle] < arr[size - 1]) { high = middle - 1; } else { low = middle + 1; } } return -1; }