public class 旋转数组指定元素查找{
/*
* 找出旋转数组中指定元素位置
*/
public static void main(String[] args) {
int[] array={4,5,1,2,3};
System.out.println(search(2, array));
}
public static int search(int n,int[] array){
int low = 0;
int high = array.length-1;
while(low<=high){
int middle = (low+high)/2;
if(array[middle]==n) return middle;
if(array[middle]>array[low]){ //left is order
if(n<=array[middle]&&n>=array[low]){
high = middle-1;
}else {
low = middle+1;
}
}else {
if(n>=array[middle]&&n<=array[high]){
low = middle+1;
}else {
high = middle-1;
}
}
}
return -1;
}
}