题目1:给一个数组 int [] a = {23,5,4,3,435,33456,7656,78,5656,4325,223,1,2333},查找输入的值,返回其下标,不存在返回-1。
二分代码:
package 算法.二分;
import java.util.Arrays;
import java.util.Scanner;
public class 二分 {
//二分查找方法
public static int Erfen (int [] arr , int key , int left , int right ){
while( left<=right){//条件事左边得小于等于右边
int mid =(left+right)/2;//每次取中间
if(key ==arr[mid]) return mid ;//如果找到则返回 ,否则从左找或者从右边找
else if(key<arr[mid])right=mid-1;//左半段去找
else left = mid+1;;//到右半段找
}
return -1;
}
//测试类
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int [] a = {23,5,4,3,435,33456,7656,78,5656,4325,223,1,2333};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println("请输入你要查找的值");
int