Java JDK 二分法 分析demo(推荐)

发布时间 - 2026-01-11 02:24:40    点击率:

如下所示:

public class Test
{

  public static void main(String[] args)
  {
    Long[] arr = new Long[100000];
    for(int i =0;i<100000;i++)
    {
      arr[i] = (long) i;
    }

    System.out.println(binarySearch(arr, 3L));
    
    Comparable midVal = (Comparable) 2L;;
    System.out.println(midVal.compareTo(2l));
  }

  private static int binarySearch(Long[] arr, long l)
  {
    return binarySearch0(arr,0,arr.length,l);
  }

  private static int binarySearch0(Object[] a, int fromIndex, int toIndex, Object key)
  {
    int low = fromIndex;
    int high = toIndex - 1;

    while (low <= high)
    {
      int mid = (low + high) >>> 1;
      Comparable midVal = (Comparable) a[mid];
      int cmp = midVal.compareTo(key);

      if (cmp < 0)
        low = mid + 1;
      else if (cmp > 0)
        high = mid - 1;
      else
        return mid; // key found
    }
    return -(low + 1); // key not found.
  }

}

算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是有序不重复的。 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。

以上这篇Java JDK 二分法 分析demo(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # 二分法  # java 中二分法查找的应用实例  # java 二分法算法的实例  # Java二分法查找_动力节点Java学院整理  # java 二分法详解几种实现方法  # Java使用二分法进行查找和排序的示例  # java实现二分法的完整代码  # 给大家  # 则在  # 升序  # 希望能  # 所示  # 这篇  # 小编  # 大家多多  # 半段  # 定值  # main  # String  # void  # Test  # static  # int  # arr  # args  # Long  # public 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现API版本控制_Laravel API版本化路由设计策略  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何用西部建站助手快速创建专业网站?  如何批量查询域名的建站时间记录?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Linux系统命令中screen命令详解  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  linux top下的 minerd 木马清除方法  在Oracle关闭情况下如何修改spfile的参数  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  如何在橙子建站中快速调整背景颜色?  移动端脚本框架Hammer.js  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何获取免费开源的自助建站系统源码?  如何自定义建站之星网站的导航菜单样式?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何在香港服务器上快速搭建免备案网站?  html5的keygen标签为什么废弃_替代方案说明【解答】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  网站优化排名时,需要考虑哪些问题呢?  javascript基于原型链的继承及call和apply函数用法分析  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  jQuery validate插件功能与用法详解  如何在腾讯云免费申请建站?  如何解决hover在ie6中的兼容性问题  QQ浏览器网页版登录入口 个人中心在线进入  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  黑客如何通过漏洞一步步攻陷网站服务器?  如何在Windows服务器上快速搭建网站?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何挑选优质建站一级代理提升网站排名?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  如何正确选择百度移动适配建站域名?  Laravel如何使用查询构建器?(Query Builder高级用法)  如何实现javascript表单验证_正则表达式有哪些实用技巧  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  魔毅自助建站系统:模板定制与SEO优化一键生成指南  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel如何实现事件和监听器?(Event & Listener实战)  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel怎么使用Intervention Image库处理图片上传和缩放  高端建站如何打造兼具美学与转化的品牌官网?  如何在万网自助建站中设置域名及备案?