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

二分查找

时间:2023-07-31 23:35:38浏览次数:28  
标签:二分 arr right int mid value 查找 left

二分查找

前提:有序
思路:
mid = (left + right) / 2
若 mid = value , 输出 mid 下标
若 mid < value , mid = left + 1
若 mid > value , mid = right - 1

public class Test2 {

    @Test
    public void test1() {
        int[] arr = {-99,-54,-2,0,0,2,33,43,256,999};
        int left = 0;
        int right = arr.length - 1;
        int value = -99;
        //value 对应的索引
        int index = -1;

        while (left <= right) {
            int mid = (left + right) / 2;
            if (value == arr[mid]){
                index = mid;
                break;
            } else if (value < arr[mid]) {
                right = mid - 1;
            }else if (value > arr[mid]) {
                left = mid + 1;
            }
        }

        if (index == -1){
            System.out.println("没有");
        }else {
            System.out.println("索引为:" + index);
        }
    }
}

标签:二分,arr,right,int,mid,value,查找,left
From: https://www.cnblogs.com/9fall/p/17595308.html

相关文章

  • linux 中查找隐藏文件及排除隐藏文件
     001、查找当前目录下的隐藏文件[root@PC1test01]#lsa.txtdir1[root@PC1test01]#ls-a...a.txtdir1.x.txt[root@PC1test01]#find./-maxdepth1-typef-name".*"##查找当前目录下的隐藏文件./.x.txt 002、排除当前目录下的隐藏文件[roo......
  • 二分图的最小顶点覆盖 最大独立集 最大团
    二分图的最小顶点覆盖最大独立集最大团重要结论写在最前面:①最小顶点覆盖等于二分图的最大匹配②最大独立集=所有顶点数-最小顶点覆盖③二分图的最大团=补图的最大独立集一、二分图的最小顶点覆盖定义:假如选了一个点就相当于覆盖了以它为端点的所有边。最小顶点覆......
  • 二分查找常见变种方法的代码实现
    二分查找变种:1.查找大于target的所有值的最小索引;2.查找等于target的所有值的最大索引(上界);3.查找大于target的所有值的最大索引; 代码示例:/***二分查找工具对象*/constBinarySearch=(function(){return{/***找出大于target的所有值......
  • 二分
    二分答案例题abc312C-InvisibleHandqiansui_code......
  • 二分查找法
    文章目录二分查找法二分查找的关键:二分查找法演示二分查找法适用于有序数组,顺序查找绝大多数情况有效但是由于它是一个一个元素进行查找,其效率很低,只有一个for循环二分查找的关键:找到最左边元素(left)和最右边元素(right),确定中间元素(mid)intr=0; scanf("%d",&r); intarr[]={0......
  • abc312c <二分答案>
    题目C-InvisibleHand思路二分X,同时二分得到buyer和seller的人数(很精巧的二分~);当然,从复杂度角度,\(O(N\logN)\)也是可以的;实际上可以写成\(O(N)\)的形式?感觉线性扫描也可?代码点击查看代码#include<iostream>#include<algorithm>#include<vector>#include<cst......
  • 查找 SQL Server 中活动的 SQL 连接
    一、概述有多种方法可以找到SQLServer的活动SQL连接。本文分享一下几种常见的方法。二、解决方案2.1 SP_WHOSP_WHO作为查找SQLServer上运行的活动SQL连接的方法。SP_WHO将具有最少的列,但却是列出活动连接的快速方法。特别是当SQLServer上有阻塞时,可以找到阻塞和......
  • 用于查找 SQL Server 中死锁的 T-SQL 查询
    用于查找SQLServer中死锁的T-SQL查询 早些时候,我写了一篇关于使用扩展事件来查找SQLServer上发生的死锁的文章。扩展事件对于跟踪服务器上短时间内发生的死锁有很大帮助,尤其是在生产环境中。然而,在开发环境中,我遇到过当多个开发人员尝试对表执行dml语句时出现持续长......
  • 3-1 在上面有关折半查找的例子中,while 循环语句内共执行了两次测试,其实 只要一次就足
    ArchlinuxGCC13.1.1 202304292023-07-2911:07:02星期六 点击查看代码#include<stdio.h>intbinsearch(intx,intv[],intn){intlow,high,mid;low=0;high=n-1;mid=(low+high)/2;while((low<=high)&&(......
  • 散列表的查找
    散列表的查找基本思想记录的存储位置与关键字之间存在的对应关系.使用哈希函数查找对应的数据就是直接将学生的学号当做下标来存储.这样就非常好查找如何让查找根据散列函数H(key)=k查找key=n,则访问H(n)=n的地址,若内容为n则成功.若查询不到,返回一个特殊值,空指针......