今天学习二分法
定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。
public static void main(String[] args) {
int [] arr = {12,23,57,98,233,345,456,677,890,4567};
int index = arrSearch(arr,345);
//表若index为-1时输出该元素不存在,否则输出该元素下标
System.out.println(index==-1?"该元素不存在":"该元素下标"+index);
}
private static int arrSearch(int[] arr, int dext) {
//开始下标
int begin = 0;
//结束下标
int end = arr.length-1;
while (begin<=end){
//中间下标
int mid = (begin+end)/2;
if (arr[mid] == dext) {
return mid;
}else if (arr[mid]<dext)
{
begin=mid+1;
}else {
end = mid - 1;
}
}
//-1表该查找的数据不存在
return -1;}