java 二分法详解几种实现方法
发布时间 - 2026-01-10 23:16:43 点击率:次java 二分法详解几种方法

二分查找(java实现)
二分查找
算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
实现:
1.非递归代码
public static int biSearch(int []array,int a){
int lo=0;
int hi=array.length-1;
int mid;
while(lo<=hi){
mid=(lo+hi)/2;
if(array[mid]==a){
return mid+1;
}else if(array[mid]<a){
lo=mid+1;
}else{
hi=mid-1;
}
}
return -1;
}
2.递归实现
public static int sort(int []array,int a,int lo,int hi){
if(lo<=hi){
int mid=(lo+hi)/2;
if(a==array[mid]){
return mid+1;
}
else if(a>array[mid]){
return sort(array,a,mid+1,hi);
}else{
return sort(array,a,lo,mid-1);
}
}
return -1;
}
时间复杂度为 O(logN)
查找第一个元素出现的位置(元素允许重复)
public static int biSearch(int []array,int a){
int n=array.length;
int low=0;
int hi=n-1;
int mid=0;
while(low<hi){
mid=(low+hi)/2;
if(array[mid]<a){
low=mid+1;
}else{
hi=mid;
}
}
if(array[low]!=a){
return -1;
}else{
return low;
}
}
查询元素最后一次出现的位置
public static int biSearch(int []array,int a){
int n=array.length;
int low=0;
int hi=n-1;
int mid=0;
while(low<hi){
mid=(low+hi+1)/2;
if(array[mid]<=a){
low=mid;
}else{
hi=mid-1;
}
}
if(array[low]!=a){
return -1;
}else{
return hi;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 二分法
# 二分法几种实现方法
# 关于二分法查找Java的实现及解析
# Java 二分法检索算法代码实现详解
# java实现二分法查找出数组重复数字
# java实现二分法的完整代码
# java 中二分法查找的应用实例
# java 二分法算法的实例
# Java二分法查找_动力节点Java学院整理
# Java实现二分法变种的示例代码
# 递归
# 则在
# 第一个
# 希望能
# 谢谢大家
# 又叫
# 几种方法
# 后半部
# 前半
# pre
# br
# strong
# nbsp
# color
# style
# span
# lt
# return
# length
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网页设计与网站制作内容,怎样注册网站?
微信小程序 scroll-view组件实现列表页实例代码
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
高端企业智能建站程序:SEO优化与响应式模板定制开发
图册素材网站设计制作软件,图册的导出方式有几种?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
韩国服务器如何优化跨境访问实现高效连接?
详解MySQL数据库的安装与密码配置
如何快速打造个性化非模板自助建站?
Laravel如何配置任务调度?(Cron Job示例)
智能起名网站制作软件有哪些,制作logo的软件?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Mybatis 中的insertOrUpdate操作
🚀拖拽式CMS建站能否实现高效与个性化并存?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
JavaScript如何操作视频_媒体API怎么控制播放
Laravel如何实现数据库事务?(DB Facade示例)
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
如何用wdcp快速搭建高效网站?
如何用VPS主机快速搭建个人网站?
高端建站如何打造兼具美学与转化的品牌官网?
JS实现鼠标移上去显示图片或微信二维码
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
实例解析Array和String方法
如何在阿里云部署织梦网站?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
高端网站建设与定制开发一站式解决方案 中企动力
Bootstrap CSS布局之列表
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
JS去除重复并统计数量的实现方法
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
JavaScript模板引擎Template.js使用详解
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何在 React 中条件性地遍历数组并渲染元素
如何在阿里云服务器自主搭建网站?
EditPlus中的正则表达式实战(6)
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
网站图片在线制作软件,怎么在图片上做链接?

