折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=1,上限为h=5,求中点m=(l+h)/2,用X与中点元素am比较,若X等于am,即找到,停止查找;否则,若X大于am,替换下限l=m+1,到下半段继续查找;若X小于am,换上限h=m-1,到上半段继续查找;如此重复前面的过程直到找到或者l>h为止。如果l>h,说明没有此数,打印找不到信息,程序结束。

方法一:

package suanfa;

import java.util.*;

public class zheban {

public static void main(String[]args)

{

int[]a={1,3,6,8,9,89,765};

int time=search(a,8);

System.out.println(time);

}

public static int search(int[]a,int key)

{

int low=1;

int high=a.length;

int mid;

while(low

{

mid=(low+high)/2;

if(key==a[mid-1])

return mid-1;

else if(key>a[mid-1])

low=mid+1;

else

high=mid-1;

}

return 0;

}

}

方法二:

package m;

import java.util.*;

public class zheban {

public static int[]data={1,3,5,7,9,11,22,44,67,89};

public static void main(String[]args)

{

System.out.println("please enter the data you will find:");

Scanner scan=new Scanner(System.in);

int key=scan.nextInt();

zheban(key,0,9);

}

public static boolean zheban(int key,int low,int high)

{

int l=low;

int h=high;

int mid;

while(l

{

mid=(l+h)/2;

if(data[mid]==key)

{

System.out.println("find "+"the data is in array "+(mid+1));

return true;

}

else if(key

h=mid-1;

else if(key>data[mid])

l=mid+1;

}

System.out.println("failed");

return false;

}

}

java中折半查找思想_java折半查找法相关推荐

  1. java中浮点数的表示_java 浮点数表示法

    这个要从Double类的一个方法说起:Double.doubleToLongBits(double value),根据官方文档,其部分注释内容如下: public static long double ...

  2. java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...

    做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{ //动物的接口    public void eat(Food food); // ...

  3. java中输入char类型_java中如何输入char类型

    java中基本数据类型的输入包括整形的输入:in.nextInt();单精度浮点型:in.nextFloat();双精度浮点型:in.nextDouble();字符串类型:in.next();in.n ...

  4. java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组

    Java极客  |  作者  /  铿然一叶 这是Java极客的第 48 篇原创文章 一.数组的特点 1.数组大小固定 2.一个数组只能存储相同数据类型 3.随机访问性能高 4.存储空间连续,这样可以 ...

  5. java中审核订单流程图_Java 后端横扫阿里、滴滴、美团总结的面试经验!

    这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了. 先说下这次面试的结果吧: 到 hr 面的:阿里.美团.滴滴.金山云. ...

  6. java中的集合框架_JAVA中的集合框架(上)List

    第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...

  7. java中el是什么_java中jsp的EL的定义以及使用

    1.定义: EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方 ...

  8. java中equals的重写_Java重写equals方法(重点讲解)

    为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往 ...

  9. java中数组的数据结构_Java数据结构与算法(一)--数组

    目录 数组是应用最广泛的数据存储结构.它被植入大部分的编程语音.在Java中数组用来存放一种类型的集合. 1.数组的介绍 ①数组的声明 第一种方式: int[] arr = new int[10];/ ...

最新文章

  1. ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
  2. BZOJ 2131 免费的馅饼(DP,二维偏序问题 / 旋转坐标轴转化问题)【BZOJ 修复工程】
  3. Ubuntu12下挂载硬盘(9TB)
  4. HadoopSourceAnalyse---RMAppAttempt FSM
  5. P8实战(一):架构概论,从过去到未来
  6. c ++中哈希表如何访问_C / C ++中的哈希表–完整的实现
  7. [物理学与PDEs]书中的错误指出
  8. jQuery自定义右键菜单
  9. [原]Linux 命令行浏览器
  10. 头颅ct有伪影_颅脑CT怎么看?正常和异常影像分别是什么?干货满满!
  11. Pod--初始化容器
  12. Java基础语法练习题
  13. cpuv(cpuv2和v3有什么区别)
  14. 想在抖音上卖衣服不知道怎么入手,抖音小店改销量技术
  15. dw移动图片位置,dw的移动的图片代码
  16. Linux如何自定义屏幕分辨率,Linux手动设置屏幕分辨率的办法
  17. 从凸函数到Minkowski不等式的推导
  18. 选好电线 “家”倍安全
  19. wxid转微信号软件执行代码。
  20. [c/c++] linux c生成静态库共享库 - bluefrog - 博客园

热门文章

  1. NOIP2017D1T3-逛公园
  2. JAVASE的学习笔记(九)(Properties类和面向接口编程)
  3. java .endswith_Java endsWith() 方法
  4. [白话解析] 以水浒传为例深入浅出最大熵模型
  5. java startwith_Java 中的startsWith()方法
  6. Java调用WebService短信接口
  7. pc端debugger微信、电脑debugger微信、电脑调试 微信支付、pc调试 微信支付、电脑 调试真机微信、通过电脑调试手机真机打开的微信H5页面、通过电脑chrome调试手机真机打开的微信H5
  8. 【安全与加密】dropbear
  9. 人力资源管理系统设计与实现案例分享
  10. 选择嵌入式分析提供商的五个最佳实践