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系统?

