算法_二分查找(java)

简介: 算法_二分查找(java)

一、二分法

理解:把答案所在的区间逐渐缩小,直到区间内只有答案

基础了解:

Array.toString() 打印数组 将数组转化为String类型的输出

sort()对数进行i排序 默认是升序

适用:寻找一个数,寻找左侧边界,寻找右侧边界

注意:

计算时为了防止数组溢出,mid=left+(right-left)来表示


二、应用:三种情况讨论

1.寻找一个数

代码如下(示例):

 int Binarysearch(int a[],int target)   
  {
    int left=0;
    int right=a.length-1;
    while(left<=right)//搜索为空的时侯终止
    {
      int mid = left+(right-left)/2;
      if(a[mid] == target) 
      {
        return mid;
      }
      if(a[mid]>target)
      {
        right = mid-1;
      }
      if(a[mid]<target) 
      {
        left = mid+1;
      }
  }
    return -1;
  }


2.寻找左侧边界

代码如下(示例):

int left_search(int a[],int target)
  {
    int left =0;
    int right = a.length;
    while(left<right)
    {
      int mid = left+(right-left)/2;
      if(a[mid]==target)
      {
        right = mid;
      }
      if(a[mid]<target)
      {
        left=mid+1;
      }
      if(a[mid]>target)
      {
        right=mid;
      }
    }
    return left;
  }


3.寻找右侧边界

int right_search(int a[],int target)
  {
    int left =0;
    int right = a.length;
    while(left<right)
    {
      int mid = left+(right-left)/2;
      if(a[mid]==target)
      {
        left = mid+1;
      }
      if(a[mid]<target)
      {
        left=mid+1;
      }
      if(a[mid]>target)
      {
        right=mid-1;
      }
    }
    return left-1;
  }


相关文章
|
5天前
|
监控 算法 网络协议
Java 实现局域网电脑屏幕监控算法揭秘
在数字化办公环境中,局域网电脑屏幕监控至关重要。本文介绍用Java实现这一功能的算法,涵盖图像采集、数据传输和监控端显示三个关键环节。通过Java的AWT/Swing库和Robot类抓取屏幕图像,使用Socket进行TCP/IP通信传输图像数据,并利用ImageIO类在监控端展示图像。整个过程确保高效、实时和准确,为提升数字化管理提供了技术基础。
36 15
|
3月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
101 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
10天前
|
算法 索引
【算法】——二分查找合集
二分查找基础模版和进阶模版,查找元素位置,搜索插入位置,x的平方根,山脉数组的峰顶索引,寻找峰值,点名
|
11天前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
25 6
|
3月前
|
Java
在 Java 中实现二分查找法
【10月更文挑战第9天】
41 1
|
3月前
|
算法 C# 索引
C#二分查找算法
C#二分查找算法
|
3月前
|
算法 Java
java冒泡排序与二分查找(详解)
java冒泡排序与二分查找(详解)
50 4
|
3月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
161 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
3月前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
3月前
|
算法 Java Linux
java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
这篇文章介绍了如何在Java中使用Graphics2D在图片上绘制文字,并实现自动换行的功能。
166 0

热门文章

最新文章