int searchRotateArray(int arr[],int n,int key)
{
if(!arr||n<1)
return -1;
int right=n-1,left=0;
while(left<=right){
int mid=left+(right-left)/2;
if(arr[mid]==key)
return mid;
if(arr[mid]>arr[left]){
if(key<arr[mid]&&key>=arr[left])
right=mid-1;
else
left=mid+1;
}else if(arr[mid]<arr[left]){
if(key<=arr[right]&&key>arr[mid])
left=mid+1;
else
right=mid-1;
}else
++left;
}
return -1;
}
搜索旋转排序数组
最新推荐文章于 2022-12-08 13:14:26 发布