//争取一次过
int search(int A[], int n, int target)
{
if(A==0 || n==0)
return -1;
int left = 0;
int right = n-1;
while(left<=right)
{
int mid =left+((right-left)>>1);
if(A[mid]==target)
return mid;
if(A[mid]>=A[left])
{
if(A[left]<=target && target<=A[mid])
{
right = mid-1;
}
else
{
left = mid+1;
}
}
else
{
if(A[mid]<=target && target<=A[right])
{
left = mid+1;
}
else
{
right = mid-1;
}
}
}
return -1;
}