package com.interview.algorithms.array;
/**
* Created_By: stefanie
* Date: 14-7-29
* Time: 下午8:08
*/
public class C4_40_SearchInRotatedArray {
public static int search(int[] array, int number){
return search(array, number, 0, array.length -1);
}
private static int search(int[] array, int number, int low, int high){
if(low > high) return -1;
int mid = low + (high - low) / 2;
if(array[mid] == number) return mid;
else if(array[mid] < number){
if(number <= array[high]) return search(array, number, mid + 1, high);
else return search(array, number, low, mid - 1);
} else {
if(number >= array[low]) return search(array, number, low, mid - 1);
else return search(array, number, mid + 1, high);
}
//
// else if(array[mid] <= array[high]){ //smaller goes to left, larger and larger than high goes to left, smaller than high goes to right
// if(array[mid] > number || number > array[high]) return search(array, number, low, mid-1);
// else return search(array, number, mid+1, high);
// } else { //larger goes to right, smaller and smaller than high goes to right, larger than high goes to left.
// if(array[mid] < number || number < array[high]) return search(array, number, mid+1, high);
// else return search(array, number, low, mid-1);
// }
}
}