java二分法查找法算法_算法二:二分法查找(java语言)
说明:
二分法查找
* 解析:
* 一维数组,二分法查找:假如有一组数为1,2,3,4,5,6,7,8,9,10要查给定的值7.
* 可设三个变量low,mid,high分别指向数据的前,中间和后,mid=(low+high)/2.
* 注意:此序列是已按照递增排序(有序序列是第一步)
* 思路:
* 1:将low=0,值为1;high=9,值为10(因为数组下标从0开始);mid=(low+high)/2,即等于4,值为5(因为整型会省略小数点);
* 2:将mid的值与查找的数作比较,如果mid
* 如果n
* 3:现在的mid等于4,值为5,查找的范围为:5,6,7,8,9,10,显然mid
题目:
* 设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111}
* 使用二分(折半)法查找关键字93需要进行多少次比较
代码实现:
public classBinaryChop {public static voidmain(String[] args) {int params=93,number=0;int[] binarys={5,8,14,20,31,55,78,81,93,97,111};if(binarys!=null && binarys.length>0){
number=getBinaryChopNums(binarys,params);
}
System.out.println("比较次数为==="+number);
}/*** 二分法
*@paramdata数组
*@paramparams查找的数据
*@returnnumber比较次数*/
private static int getBinaryChopNums(int[] data,intparams){int number=0,low=0,hight=data.length-1,mid=0;if(data==null || data.length<=0){returnnumber;
}//二分法实现
for (int i = 0; i < data.length; i++) {
mid=(low+hight)/2;if(hight==low && data[mid]!=params){ //判断是是否存在查找的参数
number=0;break;
}
number+=1;if(data[mid]==params){ //判断是否相等
break;
}else if(data[mid]
low=mid+1;
}else{ //位于前半部分
hight=mid-1;
}
}returnnumber;
}
}
答案:2
java二分法查找法算法_算法二:二分法查找(java语言)相关推荐
- c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法
本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...
- mysql二分法查找亿行_算法——二分法查找(binarySearch)
转自:https://blog.csdn.net/u012194956/article/details/79103843 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法. 二分法查 ...
- 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法
本文首发于公众号:TechFlow 1 二分法可以说是鼎鼎大名,哪怕是没有学过编程的同学,也许说不上来二分法这个名字,但是对于其中的精髓应该都是有所了解的.不了解的同学也没关系,我一句话就能交代清楚: ...
- 十大排序算法之(二)快速排序--JAVA+C++实现(简单易懂)
文章目录 快速排序(Quicksort) 1.实现原理: 1.1.动图展示: 1.2.实现步骤: 2.时间复杂度 3.代码实现: 3.1.JAVA 实现 3.2.C++实现 3.3.C语言实现 3.4 ...
- java实现子序列最大和_算法入门:最大子序列和的四种算法(Java)
最近再学习算法和数据结构,推荐一本书:Data structures and Algorithm analysis in Java 3rd 以下的四种算法出自本书 四种最大子序列和的算法: 问题描述 ...
- python分治算法_算法-分治
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解,是一种分目标完成程序算法,简单的问题可用二分法完成. 1. ...
- python实现五大基本算法_算法基础:五大排序算法Python实战教程
排序是每个算法工程师和开发者都需要一些知识的技能. 不仅要通过编码实现,还要对编程本身有一般性的了解. 不同的排序算法是算法设计如何在程序复杂性,速度和效率方面具有如此强大影响的完美展示. 让我们来看 ...
- 算法导论 算法_算法导论
算法导论 算法 Algorithms are an integral part of the development world. Before starting coding of any soft ...
- java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)
海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...
最新文章
- oracle读写队列深度,ORACLE TUNE THINKING (三) 操作系统优化
- 2019阿里应届内推编程题
- 关于UIAlertActionStyle的一些知识点
- sql语句执行步骤详解
- 寂寞了就去搞钱?俞敏洪举报“俞敏洪”:“搞钱论”没一句话是我说的
- 不会PS抠图?免抠(扣)PNG图片网就解决了
- CRF++总结 (1)(2)【转】
- 又被腾讯刷屏!果然是印钞机.....酸哭了...
- SpringBoot整合JavaMail---发送邮件
- 基本知识 100159
- windows必备的驱动软件推荐
- C# 使用openxml解析PPTX中的文本内容
- Python 黑板客爬虫闯关的第一关
- ubuntu系统下抓取屏幕
- Unix/Linux存在之必然性
- allegro设置区域规则
- 新人做微商前期如何引流? 3个技巧你学会了,日进30+精准粉丝!
- [BJDCTF 2nd] 燕言燕语-y1ng
- Flash builder 4无法调试问题
- 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)
热门文章
- 前端学习(3181):ant-design的button介绍
- 前端学习(3001):vue+element今日头条管理--项目初始化总结
- [jQuery] jQuery的attr和prop方法有什么区别?
- [vue] 说下你对指令的理解?
- [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
- “约见”面试官系列之常见面试题第十七篇之实现深拷贝(建议收藏)
- 前端学习(2017)vue之电商管理系统电商系统实现表单的预先认证
- 前端学习(1912)vue之电商管理系统电商系统之调用api完成删除操作
- 企业网站前端制作实战教程 JQuery CSS JS HTML 登录表单验证
- 前端学习(497):布局之居中布局