说明:

二分法查找

* 解析:

* 一维数组,二分法查找:假如有一组数为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语言)相关推荐

  1. c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法

    本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...

  2. mysql二分法查找亿行_算法——二分法查找(binarySearch)

    转自:https://blog.csdn.net/u012194956/article/details/79103843 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法. 二分法查 ...

  3. 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法

    本文首发于公众号:TechFlow 1 二分法可以说是鼎鼎大名,哪怕是没有学过编程的同学,也许说不上来二分法这个名字,但是对于其中的精髓应该都是有所了解的.不了解的同学也没关系,我一句话就能交代清楚: ...

  4. 十大排序算法之(二)快速排序--JAVA+C++实现(简单易懂)

    文章目录 快速排序(Quicksort) 1.实现原理: 1.1.动图展示: 1.2.实现步骤: 2.时间复杂度 3.代码实现: 3.1.JAVA 实现 3.2.C++实现 3.3.C语言实现 3.4 ...

  5. java实现子序列最大和_算法入门:最大子序列和的四种算法(Java)

    最近再学习算法和数据结构,推荐一本书:Data structures and Algorithm analysis in Java 3rd 以下的四种算法出自本书 四种最大子序列和的算法: 问题描述 ...

  6. python分治算法_算法-分治

    分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解,是一种分目标完成程序算法,简单的问题可用二分法完成. 1. ...

  7. python实现五大基本算法_算法基础:五大排序算法Python实战教程

    排序是每个算法工程师和开发者都需要一些知识的技能. 不仅要通过编码实现,还要对编程本身有一般性的了解. 不同的排序算法是算法设计如何在程序复杂性,速度和效率方面具有如此强大影响的完美展示. 让我们来看 ...

  8. 算法导论 算法_算法导论

    算法导论 算法 Algorithms are an integral part of the development world. Before starting coding of any soft ...

  9. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

最新文章

  1. oracle读写队列深度,ORACLE TUNE THINKING (三) 操作系统优化
  2. 2019阿里应届内推编程题
  3. 关于UIAlertActionStyle的一些知识点
  4. sql语句执行步骤详解
  5. 寂寞了就去搞钱?俞敏洪举报“俞敏洪”:“搞钱论”没一句话是我说的
  6. 不会PS抠图?免抠(扣)PNG图片网就解决了
  7. CRF++总结 (1)(2)【转】
  8. 又被腾讯刷屏!果然是印钞机.....酸哭了...
  9. SpringBoot整合JavaMail---发送邮件
  10. 基本知识 100159
  11. windows必备的驱动软件推荐
  12. C# 使用openxml解析PPTX中的文本内容
  13. Python 黑板客爬虫闯关的第一关
  14. ubuntu系统下抓取屏幕
  15. Unix/Linux存在之必然性
  16. allegro设置区域规则
  17. 新人做微商前期如何引流? 3个技巧你学会了,日进30+精准粉丝!
  18. [BJDCTF 2nd] 燕言燕语-y1ng
  19. Flash builder 4无法调试问题
  20. 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)

热门文章

  1. 前端学习(3181):ant-design的button介绍
  2. 前端学习(3001):vue+element今日头条管理--项目初始化总结
  3. [jQuery] jQuery的attr和prop方法有什么区别?
  4. [vue] 说下你对指令的理解?
  5. [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
  6. “约见”面试官系列之常见面试题第十七篇之实现深拷贝(建议收藏)
  7. 前端学习(2017)vue之电商管理系统电商系统实现表单的预先认证
  8. 前端学习(1912)vue之电商管理系统电商系统之调用api完成删除操作
  9. 企业网站前端制作实战教程 JQuery CSS JS HTML 登录表单验证
  10. 前端学习(497):布局之居中布局