lb指第一个元素下标,ub指最后一个元素下标
public int
binarySearch(int a
[], int k
, int lb
, int ub
) {
int mid
= -1;
if(lb
<= ub
) {
mid
= (ub
+ lb
) / 2;
if(a
[mid
] == k
) {
return mid
;
}else if(a
[mid
] < k
) {
return binarySearch(a
, k
, mid
+1, ub
);
}else return binarySearch(a
, k
, lb
, mid
-1);
}
return -1;
}
public int
binarySearch2(int a
[], int k
, int n
) {
int mid
,ub
=0,lb
=n
-1;
while(lb
<=ub
) {
mid
= (lb
+ ub
) / 2;
if(a
[mid
] == k
) return mid
;
else if(a
[mid
] < k
) {
lb
= mid
+1;
}else ub
= mid
-1;
}
return -1;
}
转载请注明原文地址: https://yun.8miu.com/read-111661.html