首页 > 其他分享 >数据结构——二分查找(1)

数据结构——二分查找(1)

时间:2023-10-31 23:26:08浏览次数:30  
标签:二分 Scanner tar int nextInt 查找 static 数据结构 public

``

点击查看代码
import java.util.Scanner;

public class Main {
    
     public static int[] a = new int[10];
    
    public static void main(String[] args) {
       
     
       Scanner s = new Scanner(System.in);
       int n = s.nextInt();
       int b = s.nextInt();
       for(int i = 0; i < n; i++){
           a[i] = s.nextInt();
       }
     
       System.out.print( basic(a,b));
    }
    
    public static int basic(int[] a, int tar){   //升序数值,找到对应值的下标
           int i = 0 , j = a.length - 1;
           while(i <= j){
               int m = i + j >> 1;  //下标取整,3.5 => 3
               if(tar > a[m]){   //目标在右边
                   i = m + 1;
               }else if(tar < a[m]){   //目标在左边
                   j = m -1;
               }else{  
                   return m;
               }
           }
           return -1;
       }
}


标签:二分,Scanner,tar,int,nextInt,查找,static,数据结构,public
From: https://www.cnblogs.com/lgy198/p/17801794.html

相关文章

  • C++数据结构
    C++数据结构C/C++数组允许定义可存储相同类型数据项的变量,但是结构体是C++中另外一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。结构用于表示一条记录,假设要跟踪图书馆书本的动态,可能需要跟踪每本书的下列属性:TitleAuthorSubjectBookID定义结构体......
  • 二分查找算法题1
    /***https://leetcode.cn/problems/sqrtx/description/*二分查找*将数据分成两部分*第一部分为平方小于等于target*另外的为大于target*left=mid。right=mid-1;使用+1求中**/publicstaticvoidhanShu19(intx){......
  • 二分模板 Acwing 789 数的范围
     二分一定有解,若出现无解,一定是题目中无解二分步骤:定义check函数,先找到一个x,使得区间左边满足条件区间右边不满足条件,定义mid=l+r>>1去判断于x的关系,此时需要判断边界关系,例如当a[mid]小于x时,说明二分值在x的左边,此时缩小范围为【mid,r】,即令l=mid,此时返回check函数,......
  • 数据结构-布隆过滤器
    它是一种概率数据结构,用于查找集合中是否存在元素。换句话说,它可以判断一个元素是否可能(而不是绝对)存在于集合中。它具有空间效率,因为它不存储实际元素(如哈希映射)。此外,布隆过滤器可能会给出假阳性结果,但不会出现假阴性。......
  • 如何基于通配符匹配在当前目录及其子目录中递归查找所有文件?
    内容来自DOChttps://q.houxu6.top/?s=如何基于通配符匹配在当前目录及其子目录中递归查找所有文件?如何基于通配符匹配在当前目录及其子目录中递归查找所有文件?使用find(Linux命令):find.-name"foo\*"find需要一个起始点,因此.(点)指向当前目录。......
  • 数据结构
    数据结构定义数据结构就是设计数据以何种方式组织并存放在计算机中eg:列表,字典,元组,堆,栈,队列程序=数据结构(静态的数据)+算法(动态的操作)分类逻辑结构线性(一对一)非线性树结构(一对多)图结构(多对多)集合结构(除属于同一集合,别无其它关系)存储结构(物理结构)顺序存储结......
  • UE5 怎么快速查找 UI 是哪个蓝图?
    通过“工具”->"调试"->"控件反射器"官方文档:https://docs.unrealengine.com/5.1/zh-CN/using-the-slate-widget-reflector-in-unreal-engine/......
  • 数据结构:栈与队列-详解循环队栈
    《详解循环队栈》目录:循环队列的定义及其特点循环队列的实现完整Demo运行截图小结参考文献一、循环队列的定义及其特点队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表......
  • 线段树二分
    修改操作可以很简单的在线段树上打标记即可。常规做法直接二分R然后区间查询gcd,复杂度是仨log。upded:其实也是俩log,线段树查询区间gcd是单log。注意到你会将区间拆分成log个子区间,直接查询他们的gcd即可,直接查询为什么不会多乘个log呢。注意到对两个数\(x,y\)做......
  • 数据结构与算法 | 二分搜索(Binary Search)
    二分搜索(BinarySearch)文承上篇,搜索算法中除了深度优先搜索(DFS)和广度优先搜索(BFS),二分搜索(BinarySearch)也是最基础搜索算法之一。二分搜索也被称为折半搜索(Half-intervalSearch)也有说法为对数搜索算法(LogarithmicSearch),用于在已排序的数据集中查找特定元素。搜索过程从排序数......