首页 > 编程语言 >Java二分法

Java二分法

时间:2023-01-03 23:44:06浏览次数:42  
标签:下标 target nums int 二分法 查找 Java

二分查找题目

输入一个 n 个元素升序的整型数组 nums , 再输入一个目标值 target  。 编写一个方法: 使用二分法, 查找 nums 中的 target, 如果target存在, 则返回在数组中的下标, 否则返回 -1。

数组上任意一点的值:nums[i]

二分法查找流程

第一步

在数组中,取得中间下标。 中间下标=(最大下标-最小下标)/2+最小下标

第二步

判断中间下标的值和目标值target是否相等。

相等
直接返回中间下标
中间下标的值小于目标值target
缩小查找范围,将最小下标变为中间下标+1
中间下标的值大于目标值target
缩小查找范围,将最大的下标变为中间下标-1

代码示例

package com.binary;

public class Binary {
    //创建二分查找的方法,入参1:nums、入参2:target
    public int search(int[] nums,int target){
        int low=0;
        int high=nums.length-1;
        while(low<=high){
            int mid=(high-low)/2+low;
            int num=nums[mid];
            if(num==target){
                return mid;
            } else if(num>target){
                high=mid-1;
            } else {
                low=mid+1;
            }

        }
        return -1;
    }

    public static void main(String[] args) {
        int[] nums={1,2,3,4,5};
        int target=2;
        int result=new Binary().search(nums,target);
        System.out.println("应该输出的下标值为:1,实际输出的下标值为:"+result);
    }
}

标签:下标,target,nums,int,二分法,查找,Java
From: https://www.cnblogs.com/LoveShare/p/17023720.html

相关文章

  • JAVA线程池-工具类
    packagecom.javacode2022.util;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.collections4.CollectionUtils;importjava.util.List;importjava.......
  • java基于springboot外卖系统在线订餐系统app源码厨艺论坛APP
    简介本项目主要包括了外卖订餐系统(在线订餐和外卖配送)、厨艺论坛系统、管理员后台、用户中心等功能。用户注册后可以选择餐桌在线点餐支付,也可以选择外卖配送到家的方式。......
  • java开发的考研系统大学生考研推荐网站考研网站源码
    简介:考研信息推荐查询。主要是管理发布管理考研的知识文章,或者上传资料,发布考研的视频。学生可以注册后下载资料,查看考研文章视频等。文章分为vip文章和普通文章,学生查看v......
  • java家装网装修网站装修系统源码
    简介本平台主要是家装网站。管理员发布装修案例,看工地,装修设计师,装修攻略,装修知识文章等,嵌入3d全景图。普通用户注册,填写装修房型报价等。演示视频:https://www.bilibil......
  • Java Platform Standard Edition 8 Documentation
    OraclehastwoproductsthatimplementJavaPlatformStandardEdition(JavaSE)8:JavaSEDevelopmentKit(JDK)8andJavaSERuntimeEnvironment(JRE)8.JDK8......
  • Java 8 中的 Streams API 详解
    filterfilter对原始Stream进行某项测试,通过测试的元素【返回true的】被留下来生成一个新Stream。清单10.留下偶数Integer[]sixNums={1,2,3,4,5,6};Integer[]......
  • 权重随机算法的java实现
    一、概述平时,经常会遇到权重随机算法,从不同权重的N个元素中随机选择一个,并使得总体选择结果是按照权重分布的。如广告投放、负载均衡等。如有4个元素A、B、C、D,权重......
  • 第二十章《Java Swing》第5节:常用组件
    ​窗体上的按钮、标签、文本框等都被称为“窗体组件”,简称“组件”。大部分组件都是Jcomponent类的子类,而Jcomponent又是Container的子类、Container又是Component的子类。......
  • V8是如何执行一段JavaScript代码的?
    JavaScript属于解释型语言,解释型语言编写的程序,在每次运行时都需要通过解释器对程序进行动态解释和执行。解释器对源代码进行词法分析、语法分析,并生成抽象语法树(AST)和......
  • Java Core和HeapDump
    什么是JavaCore和HeapDumpJava程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。发生致命问题后,Java进程有时可以继续运行,但有时......