java实现折半查找_java语言之实现折半查找算法
本文主要向大家介绍了java语言之实现折半查找算法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的。对于没有经过排序的,可以查阅我之前的排序算法文章进行预排序,然后进行折半查找操作。
譬如数组{1,2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为:
1.第一步查找中间元素,即5,由于5<6,则6必然在5之后的数组元素中,那么就在{6, 7, 8, 9}中查找,
2.寻找{6, 7, 8, 9}的中位数,为7,7>6,则6应该在7左边的数组元素中,那么只剩下6,即找到了。
二分查找算法就是不断将数组进行对半分割,每次拿中间元素和目标数据进行比较。
public class BinarySearch {
public static void main(String[] args) {
int a[]={1,2,3,4,5,6,7,8};
Scanner sca=new Scanner(System.in);
System.out.print("输入要查找的数据:");
int x=sca.nextInt();
int loc=binarySearch(a,a.length,x);//返回数据所在位置
System.out.print(loc);
}
private static int binarySearch(int[] a, int length, int x) {
int left=0;
int right=length-1;
int mid;
while(left<=right){
mid=(left+right)/2;
if(a[mid]==x){
return mid;
}
else if(a[mid]>x){
right=mid-1;
}else{
left=mid+1;
}
} return -1;//未找到返回-1
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
java实现折半查找_java语言之实现折半查找算法相关推荐
- java c++的区别_Java语言与C、C++之间的区别?
小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...
- java数组二分查找_java 13-1 数组高级二分查找
查找: 1.基本查找:数组元素无序(从头找到尾) 2.二分查找(折半查找):数组元素有序 pS:数组的元素必须有顺序,从小到大或者从大到小.以下的分析是从小到大的数组 二分查找分析: A:先对数组进行 ...
- java程序设计基础篇_Java语言程序设计(基础篇) 第一章
第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...
- java开发 cad软件_java语言可以用于cad开发吗
摘要:根据COM技术原理,本文利用AutoCAD2000提供的类型库,编写了一个演示例程:同时,详细介绍了应用Java语言进行AutoCAD二次开发的方法和思路. 关键字:二次开发,AutoCAD定制 ...
- java四个数打擂_Java语言逻辑 数组
<Java语言逻辑 数组>由会员分享,可在线阅读,更多相关<Java语言逻辑 数组(42页珍藏版)>请在人人文库网上搜索. 1.数组,Java语言逻辑,1.为什么需要数组,一次 ...
- java linkedlist 查找_Java中LinkedList真的是查找慢增删快
测试结果 废话不多说,先上测试结果.作者分别在ArrayList和LinkedList的头部.尾部和中间三个位置插入与查找100000个元素所消耗的时间来进行对比测试,下面是测试结果 (感谢@Hosa ...
- java 与c 运行效率_Java语言与C语言代码运行效率的比较
<Java语言与C语言代码运行效率的比较>由会员分享,可在线阅读,更多相关<Java语言与C语言代码运行效率的比较(2页珍藏版)>请在人人文库网上搜索. 1.Java语言与C语 ...
- java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]
本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...
- java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...
Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点.A.多线程B.健 更多相关问题 根据句意及首字母完成单词1. -What c__________ is i ...
最新文章
- ordfilt2函数功能说明
- nagios报警延迟的解决--flapping state
- Java中的一直不能掌握的switch-case语句
- STM32F103ZET6 蜂鸣器、按键
- [转]Ubuntu远程桌面登陆
- Spring MVC遭遇checkbox的问题解决方式
- 第二章 系统设置及基本操作
- mysql查询序号低于10前面补个0_mysql 前缀 + 编号 补0
- Python学习-初始列表
- pythonweb自动化项目源码下载_python+requests接口自动化完整项目设计源码
- vue3中setup()函数的使用一
- [NOIp2012]开车旅行
- 力扣-1022. 从根到叶的二进制数之和
- wowza 技术交流群/ wowza 流媒体软件交流群
- “人人皆可成为AI开发者”!百度世界大会官宣百度松果学堂成立
- 理解深度学习中的正则化
- Ubuntu18.04更换开机登录界面壁纸
- 腾讯技术工程 2019 年十大最受欢迎文章出炉!
- 基于kaggle数据集的猫狗识别(超详细版本)
- css表头固定样式的方法
热门文章
- 内联函数inline,无比节省开销的
- bz 1029: [JSOI2007]建筑抢修
- c++嵌入linux指令以查找文件夹
- 将多个集合合并成没有交集的集合
- linux c程序面试题,嵌入式linux面试题解析(二)——C语言部分一
- 带有毫秒 转换日期_【Java学习笔记(七)】之日期类的介绍
- vant 项目_基于 vue3.x+vant3.x 搭建示例项目
- visio防火墙可以连接什么_画流程图,就是要用Visio软件!
- vue 将字符串最后一个字符给替换_前端开发:Vue项目实战-Music
- 监听者模式 java_java监听者模式