本文主要向大家介绍了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语言之实现折半查找算法相关推荐

  1. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  2. java数组二分查找_java 13-1 数组高级二分查找

    查找: 1.基本查找:数组元素无序(从头找到尾) 2.二分查找(折半查找):数组元素有序 pS:数组的元素必须有顺序,从小到大或者从大到小.以下的分析是从小到大的数组 二分查找分析: A:先对数组进行 ...

  3. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  4. java开发 cad软件_java语言可以用于cad开发吗

    摘要:根据COM技术原理,本文利用AutoCAD2000提供的类型库,编写了一个演示例程:同时,详细介绍了应用Java语言进行AutoCAD二次开发的方法和思路. 关键字:二次开发,AutoCAD定制 ...

  5. java四个数打擂_Java语言逻辑 数组

    <Java语言逻辑 数组>由会员分享,可在线阅读,更多相关<Java语言逻辑 数组(42页珍藏版)>请在人人文库网上搜索. 1.数组,Java语言逻辑,1.为什么需要数组,一次 ...

  6. java linkedlist 查找_Java中LinkedList真的是查找慢增删快

    测试结果 废话不多说,先上测试结果.作者分别在ArrayList和LinkedList的头部.尾部和中间三个位置插入与查找100000个元素所消耗的时间来进行对比测试,下面是测试结果 (感谢@Hosa ...

  7. java 与c 运行效率_Java语言与C语言代码运行效率的比较

    <Java语言与C语言代码运行效率的比较>由会员分享,可在线阅读,更多相关<Java语言与C语言代码运行效率的比较(2页珍藏版)>请在人人文库网上搜索. 1.Java语言与C语 ...

  8. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]

    本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...

  9. java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...

    Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点.A.多线程B.健 更多相关问题 根据句意及首字母完成单词1. -What c__________ is i ...

最新文章

  1. ordfilt2函数功能说明
  2. nagios报警延迟的解决--flapping state
  3. Java中的一直不能掌握的switch-case语句
  4. STM32F103ZET6 蜂鸣器、按键
  5. [转]Ubuntu远程桌面登陆
  6. Spring MVC遭遇checkbox的问题解决方式
  7. 第二章 系统设置及基本操作
  8. mysql查询序号低于10前面补个0_mysql 前缀 + 编号 补0
  9. Python学习-初始列表
  10. pythonweb自动化项目源码下载_python+requests接口自动化完整项目设计源码
  11. vue3中setup()函数的使用一
  12. [NOIp2012]开车旅行
  13. 力扣-1022. 从根到叶的二进制数之和
  14. wowza 技术交流群/ wowza 流媒体软件交流群
  15. “人人皆可成为AI开发者”!百度世界大会官宣百度松果学堂成立
  16. 理解深度学习中的正则化
  17. Ubuntu18.04更换开机登录界面壁纸
  18. 腾讯技术工程 2019 年十大最受欢迎文章出炉!
  19. 基于kaggle数据集的猫狗识别(超详细版本)
  20. css表头固定样式的方法

热门文章

  1. 内联函数inline,无比节省开销的
  2. bz 1029: [JSOI2007]建筑抢修
  3. c++嵌入linux指令以查找文件夹
  4. 将多个集合合并成没有交集的集合
  5. linux c程序面试题,嵌入式linux面试题解析(二)——C语言部分一
  6. 带有毫秒 转换日期_【Java学习笔记(七)】之日期类的介绍
  7. vant 项目_基于 vue3.x+vant3.x 搭建示例项目
  8. visio防火墙可以连接什么_画流程图,就是要用Visio软件!
  9. vue 将字符串最后一个字符给替换_前端开发:Vue项目实战-Music
  10. 监听者模式 java_java监听者模式