package com.yongsheng.first;
/**
* 使用前提是数字按升序排列
* 二分查找法
*/
import java.util.Scanner;
public class BinarySearchDemo {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int[] array = {2,5,10,12,18,22,54,93};
System.out.print("请输入要查找的数字:");
int searchNum = input.nextInt();
boolean isFind = false; //是否找到
int low = 0;
int high = array.length - 1;
//不知道要查找多少次!
while(high>=low){
//计算中点下标
int mid = (high+low)/2;
if(searchNum<array[mid]){
high = mid - 1; //把最大值移动到中间值得左边
}else if(searchNum >array[mid]){
high = mid + 1; //把最小值移到中间值的右边
}else{
System.out.println("找到了数字!下标为:"+mid);
break;
}
}
if(isFind){
System.out.println("没有找到您输入的数字!");
}
}
}
经典二分查找法
最新推荐文章于 2024-03-19 19:14:05 发布