首页 > 其他分享 >二分查找

二分查找

时间:2024-08-27 19:52:48浏览次数:11  
标签:二分 return target nums int else middle 查找

1.基础版

public int search(int[] nums, int target) {
        int i = 0, j = nums.length - 1;
        while (i <= j) {
            int middle = (i + j) >>> 1;
            if (target < nums[middle]) {
                j = middle - 1;
            } else if (target > nums[middle]) {
                i = middle + 1;
            } else {
                return middle;
            }
        }
        return -1;
}

2.改动版

public int search(int[] nums, int target) {
        int i = 0, j = nums.length;
        while (i < j) {
            int middle = (i + j) >>> 1;
            if (target < nums[middle]) {
                j = middle;
            } else if (target > nums[middle]) {
                i = middle + 1;
            } else {
                return middle;
            }
        }
        return -1;
}

3.平衡版

public int search(int[] nums, int target) {
        int i = 0, j = nums.length;
        while (i + 1 < j) {
            int middle = (i + j) >>> 1;
            if (target < nums[middle]) {
                j = middle;
            } else {
                i = middle;
            }
        }
        return nums[i] == target ? i : -1;
}

 

标签:二分,return,target,nums,int,else,middle,查找
From: https://www.cnblogs.com/gstszbc/p/18383387

相关文章

  • 二分查找算法:朴素二分+左右边界二分&力扣实战应用
    目录:1、二分查找算法简介2、算法原理及时间复杂度分析2.1朴素二分算法3.2查找左右边界的二分算法3.2.1查找左边界3.2.2查找右边界3.3时间复杂度分析3、二分查找算法模版3.1朴素二分模版3.2查找左右边界的二分模版4、算法应用【leetcode】4.1题一:搜素插入位......
  • 浅谈二分算法
    浅谈二分算法二分首先知道一下二分是什么。二分,是一种快速处理大型数据的方法。基本逻辑是折半查找。设有一个共有\(n\)个数字的数组,要从中查询某个元素,就可以用二分查找。注:这里的数组默认其成员数值具有单调性。这个点十分重要。还记得小时候(我现在才新初一)跟同学玩过一......
  • 8.26下午二分与深搜测试
    8.26下午二分与深搜测试比赛传送门分数情况P2249【深基13.例1】查找P1706全排列问题P8647[蓝桥杯2017省AB]分巧克力P2440木材加工B3624猫粮规划P2105K皇后P3853路标设置P3743小鸟的设备01001210000015T1.P2249【深基13.例1】查找题......
  • ArrayList遍历, 元素查找
    1,ArrayList集合的遍历与数组类似,都可以使用foreach语句string[]str1={"a","b","c","d","e","f"};ArrayListList=newArrayList(str1);foreach(variteminList)......
  • 《机器学习》—— 随机森林实现二分类问题
    文章目录一、什么是随机森林二、随机森林的主要特点三、随机森林参数四、案例的代码实现一、什么是随机森林随机森林(RandomForest)是一种集成学习方法,属于监督学习算法,主要用于分类和回归任务。它通过在数据集的多个子集上构建多个决策树,并输出这些树预测结果的众数(......
  • 【Kaggle】练习赛《有毒蘑菇的二分类预测》(下)
    前言上篇《有毒蘑菇的二分类预测》(上)用ColumnTransformer和Pipeline技术来提升缺失值和建模的方法,本篇将用特征工程的方法,将特征扩展,由原先的21个特征扩展成118个特征,再用深度学习的方法进行建模以达到较好的成绩,同时,在这篇里增加了上篇没有EDA部分,更好的展示数据集......
  • 信息学奥赛初赛天天练-75-NOIP2016普及组-完善程序-二分答案、二分查找、贪心算法、贪
    1完善程序(单选题,每小题3分,共30分)郊游活动有n名同学参加学校组织的郊游活动,已知学校给这n名同学的郊游总经费为A元,与此同时第i位同学自己携带了Mi元。为了方便郊游,活动地点提供B(≥n)辆自行车供人租用,租用第j辆自行车的价格为Cj元,每位同学可以使用自己携带的钱或......
  • 浅谈二分图
    定义二分图,又称二部图,英文名叫Bipartitegraph。二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。换言之,存在一种方案,将节点划分成满足以上性质的两个集合。性质如果两个集合中的点分别染成黑色和白色,可以发现二分图中的每一条边都一定是连接一个黑色点和一个白......
  • 秋招突击——8/22——算法整理——滑动窗口类型题目思维方式——查找最短包含子串、找
    文章目录引言正文基本思路查找最短包含子串考试实现代码考试反思代码===》先确定一边的指针,然后再移动另外一个指针修改找到字符串中所有字母异位词复习实现参考实现无重复最长子串个人实现总结引言今天面试字节,被老师指出来代码能力薄弱,确实如此。后续应当多加......
  • 整体二分
    前置知识:二分,一些数据结构如树状数组用途:用于解决多次可二分可离线的询问。可以使用整体二分解决的题目应具有以下性质:询问的答案具有可二分性。修改对判定答案的贡献互相独立,修改之间互不影响效果。修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关......