Java 折半查找 二分法查找元素 必备算法

Java折半查找 二分法
小白收藏😁😁😁

import java.util.Scanner;


public class 折半查找元素法 {
	public static void main(String args[])
	{
		System.out.println("请输入您需要查找的数字:");
		Scanner count=new Scanner(System.in);
		int FIND_COUNT=count.nextInt();
		int[] List={1,3,4,6,8,43,56,78,89,90,123};
        int LOCATION= FindMath(List,FIND_COUNT);
       if(LOCATION!=-1)
       {
    	   System.out.println("找到该数字,下标为"+LOCATION);
       }
       else {
    	   System.out.println("未找到该数字");
	}
        
	}

	private static int FindMath(int[] List, int FIND_COUNT) {
		int begin_COUNT=0;//设置起始下标 
		int Midlle_Count,flag=-1;//初始化
		int end_COUNT=List.length-1;//设置末下标
		while (begin_COUNT<=end_COUNT) {
            //当初下标小于等于末下标时执行下方的代码
			Midlle_Count=(end_COUNT+begin_COUNT)/2;
			//给middle赋值
			if(FIND_COUNT==List[Midlle_Count])
			{
				//判断是否相等 相等的话将数字下标赋值给flag
				flag=Midlle_Count;
				break;
			}
			else if(FIND_COUNT<List[Midlle_Count]){
				//如果输入的数字小于中间的数 将末坐标赋值成中间前一个元素
				end_COUNT=Midlle_Count-1;
	            flag=-1;
			}else if(FIND_COUNT>List[Midlle_Count])
			{
				//如果输入的数字大于中间的数 将初始坐标赋值成中间后一个元素
				begin_COUNT=Midlle_Count+1;
				flag=-1;
			}
			
		}

if(flag!=-1)
//判断是否取到坐标
{
	return flag;
}
else {
	return -1;
}
		
		
	}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0xdF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值