java中折半查找思想_java折半查找法
折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数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折半查找法相关推荐
- java中浮点数的表示_java 浮点数表示法
这个要从Double类的一个方法说起:Double.doubleToLongBits(double value),根据官方文档,其部分注释内容如下: public static long double ...
- java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{ //动物的接口 public void eat(Food food); // ...
- java中输入char类型_java中如何输入char类型
java中基本数据类型的输入包括整形的输入:in.nextInt();单精度浮点型:in.nextFloat();双精度浮点型:in.nextDouble();字符串类型:in.next();in.n ...
- java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组
Java极客 | 作者 / 铿然一叶 这是Java极客的第 48 篇原创文章 一.数组的特点 1.数组大小固定 2.一个数组只能存储相同数据类型 3.随机访问性能高 4.存储空间连续,这样可以 ...
- java中审核订单流程图_Java 后端横扫阿里、滴滴、美团总结的面试经验!
这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了. 先说下这次面试的结果吧: 到 hr 面的:阿里.美团.滴滴.金山云. ...
- java中的集合框架_JAVA中的集合框架(上)List
第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...
- java中el是什么_java中jsp的EL的定义以及使用
1.定义: EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方 ...
- java中equals的重写_Java重写equals方法(重点讲解)
为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往 ...
- java中数组的数据结构_Java数据结构与算法(一)--数组
目录 数组是应用最广泛的数据存储结构.它被植入大部分的编程语音.在Java中数组用来存放一种类型的集合. 1.数组的介绍 ①数组的声明 第一种方式: int[] arr = new int[10];/ ...
最新文章
- ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
- BZOJ 2131 免费的馅饼(DP,二维偏序问题 / 旋转坐标轴转化问题)【BZOJ 修复工程】
- Ubuntu12下挂载硬盘(9TB)
- HadoopSourceAnalyse---RMAppAttempt FSM
- P8实战(一):架构概论,从过去到未来
- c ++中哈希表如何访问_C / C ++中的哈希表–完整的实现
- [物理学与PDEs]书中的错误指出
- jQuery自定义右键菜单
- [原]Linux 命令行浏览器
- 头颅ct有伪影_颅脑CT怎么看?正常和异常影像分别是什么?干货满满!
- Pod--初始化容器
- Java基础语法练习题
- cpuv(cpuv2和v3有什么区别)
- 想在抖音上卖衣服不知道怎么入手,抖音小店改销量技术
- dw移动图片位置,dw的移动的图片代码
- Linux如何自定义屏幕分辨率,Linux手动设置屏幕分辨率的办法
- 从凸函数到Minkowski不等式的推导
- 选好电线 “家”倍安全
- wxid转微信号软件执行代码。
- [c/c++] linux c生成静态库共享库 - bluefrog - 博客园
热门文章
- NOIP2017D1T3-逛公园
- JAVASE的学习笔记(九)(Properties类和面向接口编程)
- java .endswith_Java endsWith() 方法
- [白话解析] 以水浒传为例深入浅出最大熵模型
- java startwith_Java 中的startsWith()方法
- Java调用WebService短信接口
- pc端debugger微信、电脑debugger微信、电脑调试 微信支付、pc调试 微信支付、电脑 调试真机微信、通过电脑调试手机真机打开的微信H5页面、通过电脑chrome调试手机真机打开的微信H5
- 【安全与加密】dropbear
- 人力资源管理系统设计与实现案例分享
- 选择嵌入式分析提供商的五个最佳实践