Java使用分治算法实现排序数索引功能示例【二分搜索】

发布时间 - 2026-01-11 03:16:43    点击率:

本文实例讲述了Java使用分治算法实现排序数索引功能。分享给大家供大家参考,具体如下:

/**
 * Find the first q and return the index
 * First method is brutal force
 * Second may
 * be Divid and Conquer
 *
 * @author open201
 *
 */
public class Ono {
  /**
   * f(n) = s.length = n;
   *
   * @param s
   * @param q
   * @return
   */
  public static int BrutalForceSearch(int[] s, int q) {
    for (int i = 0; i < s.length; i++) {
      if (q == s[i])
        return i;
    }
    return -1;
  }
  /**
   * f(n) = log(n)
   *
   * @param s
   * @param q
   * @return
   */
  public static int DCSearch(int[] s, int q, int startIndex, int endIndex) {
    if (startIndex > endIndex)
      return -1;
    else {
      int mid = (startIndex + endIndex) / 2;
      if (s[mid] == q)
        return mid;
      else {
        if (s[mid] > q)
          return DCSearch(s, q, startIndex,mid-1);
        else
          return DCSearch(s, q, mid+ 1,endIndex);
      }
    }
  }
  public static void main(String[] args) {
    int [] s = new int[10000000];
    for(int i = 0;i<10000000;i++){
      s[i] = i;
    }
    int q = 10000000-1;
    long startTime = System.currentTimeMillis();
    System.out.println(BrutalForceSearch(s, q));
    long endTime = System.currentTimeMillis();
    System.out.println(endTime-startTime);
    startTime = System.currentTimeMillis();
    System.out.println(DCSearch(s, q, 0, s.length - 1));
    endTime = System.currentTimeMillis();
    System.out.println(endTime-startTime);
  }
}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# Java  # 分治算法  # 排序数  # 索引  # 二分搜索  # Java实现二分搜索树的示例代码  # Java基于二分搜索树、链表的实现的集合Set复杂度分析实例详解  # Java分治法与二分搜索算法实例分析  # java 跳转搜索的实现示例  # 操作技巧  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 更多关于  # 所述  # 程序设计  # 讲述了  # Divid  # Conquer  # force  # method  # brutal  # Ono  # length  # public  # author  # pre  # class 


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


相关推荐: 如何安全更换建站之星模板并保留数据?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel中的withCount方法怎么高效统计关联模型数量  如何快速建站并高效导出源代码?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何快速搭建高效服务器建站系统?  如何在 React 中条件性地遍历数组并渲染元素  PythonWeb开发入门教程_Flask快速构建Web应用  在线制作视频的网站有哪些,电脑如何制作视频短片?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  如何生成腾讯云建站专用兑换码?  如何在 Pandas 中基于一列条件计算另一列的分组均值  HTML 中如何正确使用模板变量为元素的 name 属性赋值  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel观察者模式如何使用_Laravel Model Observer配置  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何彻底卸载建站之星软件?  如何基于云服务器快速搭建个人网站?  Laravel如何处理表单验证?(Requests代码示例)  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何为不同团队 ID 动态生成多个“认领值班”按钮  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Firefox Developer Edition开发者版本入口  QQ浏览器网页版登录入口 个人中心在线进入  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Linux安全能力提升路径_长期防护思维说明【指导】  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  如何用VPS主机快速搭建个人网站?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何确保西部建站助手FTP传输的安全性?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel如何使用.env文件管理环境变量?(最佳实践)  网站建设整体流程解析,建站其实很容易!  java中使用zxing批量生成二维码立牌  如何用PHP快速搭建CMS系统?