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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四十大经(八正道)

中部117、四十大经 我听到这样&#xff1a; 有一次&#xff0c;世尊住在舍卫城祇树给孤独园。 在那里&#xff0c;世尊召唤比丘们&#xff1a;“比丘们&#xff01;” “尊师&#xff01;”那些比丘回答世尊。 世尊这么说&#xff1a; “我将教导你们圣正定的助伴、资粮&…

[原创]在windows下搭建基于apache的SVN环境

[原创]在windows下搭建基于apache的SVN环境 1 软件下载&#xff1a; 在http://httpd.apache.org/download.cgi&#xff0c;下载&#xff1a; apache_2.2.14-win32-x86-openssl-0.9.8k.msi 在 http://subversion.tigris.org/&#xff0c;下载&#xff1a; Setup-Subversion-1.6.…

java 线程不足_Java 线程基础知识

wait() 和notify()、notifyAll()这三个方法用于协调多个线程对共享数据的存取&#xff0c;所以必须在 Synchronized 语句块内使用这三个方法&#xff0c;否则会抛出错 IllegalMonitorStateException。前面说过 Synchronized 这个关键字用于保护共享数据&#xff0c;阻止其他线程…

16.Python略有小成(内置模块Ⅱ)

Python(内置模块Ⅱ) 一、规范化开发 一个py文件中 文件加载问题代码可读性,查询差要将一个py文件分开,合理的分成多个py文件 配置文件放在一起 : 一些轻易不改变的变量,一般命名 settings.py主逻辑函数放在一起 : 一般命名 src.py辅助功能函数放在一起 : 公共组件部分,装饰器,l…

java8 入门脚本之家_Java 8中的Lambda表达式

我想使用lambda表达式而不是for循环生成数字列表.所以让我们想要生成一个100以下的所有三角形数字的列表.三角数字是以下公式的数字&#xff1a;(n * n n)/ 2这样做最好的方法是什么&#xff1f;目前我有这个&#xff1a;Stream.iterate(1,n -> n 1).limit(100).map(n ->…

[原]nasm语法

工具:nasm 汇编gcc 编译cld 进行链接kscope 查看源代码make 工程管理khexedit 分析二进制文件一&#xff1a;nasm源文件布局&#xff1a;像其他汇编器一样&#xff0c; nasm源文件包含四个域的组合。&#xff08;除了宏&#xff0c; 或者预编译器指示&#xff0c; 或者汇编…

matlab的算法java_matlab环境下的回归算法分析

嗨&#xff0c;我想对回归技术进行全面分析&#xff0c;因此将继续编辑这个问题 . 我正在尝试使用Matlab中提供的技术来解决回归问题 . 理想情况下&#xff0c;我想看看诸如此类的技巧线性回归Logistic回归贝叶斯回归支持向量回归回归的高斯过程问题陈述给定数据 X 和 Y &#…

C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现

导读部分 ------------------------------------------------------------------------------------------------------------- C#仿QQ皮肤&#xff0d;实现原理系列文章导航 最新版源码下载 http://www.cckan.net/thread-2-1-1.html 本次是我们窗体实现的最后一节&#xff0c…

idea中删除java类并提交_IDEA 删除java类的3种提示

1. 点击 delete 删除文件时&#xff0c;会弹出如下选项&#xff1a;Safe delete (with usage search)Search in comments and strings“Safe delete ( with usage search)”, 字面意思是使用搜索安全删除. 是否选中结果分别为:没有选中状态,直接删除.选中状态,删除前IDEA会搜寻…

S3C2440、S3C2450和S3C6410之间区别

S3C2440&#xff1a;  主频400MHz&#xff1b;  SDRam内存控制器&#xff1b;  支持Nor Flash和Nand Flash&#xff08;SLC&#xff09;  支持2种Flash启动&#xff1b;  内部LCD、I2C、Camera等控制器。 S3C2450&#xff1a;  主频533MHz&#xff1b;  双总线架…

mysql指定时间_MySQL查询指定时间的数据

MySQL查询指定时间的数据。亲测可用。

助教小结13

本周总结&#xff1a; 主要为完成团队任务五的批改 整体完成的还可以 第1组、第9组&#xff1a;未点击提交按钮总成绩打八折 优秀作业&#xff1a; 第5组&#xff1a;https://www.cnblogs.com/lishuya/p/11088462.html 千帆竟发图&#xff1a; 转载于:https://www.cnblogs.com/…

Oracle多表连接查询

多个表之间关系&#xff1a;一对多|(多对一) 多对多 一对一 3种 关系的完整性约束&#xff1a;实体完整性、参照完整性、用于定义的完整性。 必须满足实体完整性和参照完整性. 实体完整性&#xff1a;规定了字段|属性的约束 参照完整性&#xff1a;关系与关系之间的引用 某个字…

工作393-注册小程序

每个小程序都需要在 app.js 中调用 App 方法注册小程序实例&#xff0c;绑定生命周期回调函数、错误监听和页面不存在监听函数等。详细的参数含义和使用请参考 App 参考文档 。// app.js App({onLaunch (options) {// Do something initial when launch.},onShow (options) {//…