1.线性查找,从头到尾去遍历,找到符合的则返回
2.二分法查找 前提:目标数组有序
package math;
public class dichotomy {
public static void main(String[] args) {
int[] arr = new int[]{2,5,7,8,9};
int k =new dichotomy().show(arr,8);
System.out.println(k);
}
public int show(int[] arr ,int target){
int sta = 0 ;
int end = arr.length-1;
int middle = (sta+end)/2 ;
int index ;
while(true){
if(target==arr[middle]){
index=middle ;
break; //控制结束
}else{
if(target<arr[middle]){
end=middle-1 ;
}else{
sta= middle+1 ;
}
}
middle = (sta+end)/2 ; //程序顺序执行,在进入循环体后上面的middle的赋值需要重写,不写则会无限循环下去
}
return index;
}
}