题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 
解题思路:先用二分法排好序。
代码:
class Solution {
public:
int minArray(vector<int>& numbers) {
if(numbers.size()==0) return -1;
if(numbers.size()==1) return numbers[0];
int l=0,r=numbers.size()-1;
int mid;
while(l<r){
if(r-l==1)
return (numbers[l]<=numbers[r]) ? numbers[l]:numbers[r];
mid=(l+r)/2;
if(numbers[mid]>numbers[r]) l=mid;
else if (numbers[mid]<numbers[l]) r=mid;
else r--;
}
return 1;
}
};