二分法查找数据

时间:2021-03-01 22:12:46

二分法查找数据

import java.util.Scanner;

/**
* 二分法查找
* @author 行者
*下午6:59:19
* 2019年3月7日
*/
public class BinarySearchDemo {
public static void main(String[] args){
// 基本原理:
// 首先将要查找的元素与中间值进行比较
// 1:如果Key小于中间元素,只需要在数组的前一半数组中继续查找
// 2:如果Key大于中间元素,则在数组的后一个半进行查找
Scanner input=new Scanner(System.in);
int[] arrays={2,4,5,6,2,75,23,65,243,87,43};
// int ar=(int)(Math.random()*100);
System.out.println("请输入要查找的数字");
int searchNum=input.nextInt();
boolean isFound= false;
int low=0;
int heigh=arrays.length-1;
while(heigh>=low){
int mid=(heigh+low)/2;
if(searchNum<arrays[mid]){
// 如果Key小于中间值,则在数组前的一半中查找
heigh=mid-1;
}else if(searchNum>arrays[mid]){
low=mid+1;
}else{
System.out.println("要查找的数字下标为:"+mid);
break;
}
}
if(!isFound){
System.out.println("没有找到你输入的数字");
}


}

}