public class BinarySearch {
public static void main(String[] args) {
int[] a = {1,3,4,6,7};
int v = 0;
System.out.print(binarySearch(a,v));
}
public static int binarySearch(int[] a,int value) {
int start = 0;
int end = a.length - 1;
int mid =0 ;
while (start <= end) {
mid = (start + end) / 2;
if (a[mid] == value) {
return a[mid];
} else if (a[mid] < value) {
start = mid + 1;
} else {
end = mid - 1;
}
}
if(value >a[a.length-1]){
return a[mid];
}else if(a[0]<value && value<a[a.length-1]){
return a[mid-1];
}else {
return value;
}
}
}
二分算法(如果要查找的数不存在返回比该值小的最大值)
最新推荐文章于 2024-05-16 08:53:55 发布