旋转数组的最小值

来源:互联网 发布:黑蚂蚁网络电视安卓版 编辑:程序博客网 时间:2024/04/28 22:07


int Min(int* numbers,int length){

if(numbers==NULL||length<=0)
throw new std::exception("Invalid parameters");
int index1=0;
int index2=length-1;
int indexMid=index1;
while(numbers[index1]>=numbers[index2]){
if(index2-index1==1){
indexMid=index2;
break;
}
indexMid=(index1+index2)/2;
if(numbers[indexMid]>=numbers[index1]){
index1=indexMid;
}else if(numbers[indexMid]<=numbers[index2]){
index2=indexMid;
}
}
return numbers[indexMid];
}//旋转数组的最小值
0 0