public class Solution {
public int search(int[] A, int target) {
if (A.length<=0) return -1;
return mySearch(A, 0, A.length-1, target);
}
public int mySearch(int[] A, int head, int back, int target) {
if (head>back) return -1;
else {
int mid=(head+back)/2;
if (target==A[mid]) return mid;
if (A[mid]>=A[head]) {
if (target<=A[mid] && target>=A[head]) return mySearch(A, head, mid-1, target);
else return mySearch(A, mid+1, back, target);
}
if (A[mid]<A[head]) {
if (target<=A[mid] || target>=A[head]) return mySearch(A, head, mid-1, target);
else return mySearch(A, mid+1, back, target);
}
return -1;
}
}
}
没有评论:
发表评论