文档章节

递归学习五--折半查找--java

Amui
 Amui
发布于 2015/10/02 15:04
字数 245
阅读 20
收藏 0

折半(二分)查找,是针对已经排好序了的元素来说的

假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。


public class BiSearch {
	public static int biSearch(int[] arr, int l, int r, int key){
		if(l>r) return -1;
		
		int mid = (r+l)/2;
		if(key == arr[mid]){
			return mid;
		}else if(key > arr[mid]){
			return biSearch(arr, mid+1, r, key);
		}else{
			return biSearch(arr, l, mid-1, key);
		}		
	}
	public static void main(String[] args){
		int[] arr = {1,3,5,6,10,13,31,57,68,91};
		System.out.println(biSearch(arr,0,arr.length-1,13));
		System.out.println(biSearch(arr,0,arr.length-1,12));
	}
}



© 著作权归作者所有

Amui
粉丝 5
博文 78
码字总数 40874
作品 0
广州
程序员
私信 提问
Java语言学习(十一):枚举类型和泛型

Java中一个重要的类型:枚举,它可以用来表示一组取值范围固定的变量,使用 enum 关键字定义枚举类型,其中元素不能重复,通常大写表示。利用Java的反射机制,可以在运行时分析类,如查看枚举...

海岸线的曙光
2018/07/18
95
0
Android--面试中遇到的问题总结(三)

《Android 开发工程师面试指南 LearningNotes 》,作者是陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以帮助准备...

sealin
2017/02/22
0
0
好程序员分享Java学习经验五弹

  第一讲,主要是Java环境变量的配置。搭建好环境才能干活。要理解什么是编译、什么是运行。编译是javac.exe程序在负责;运行则由java.exe负责。编译后得到的是字节码文件xxx.class;运行x...

好程序员IT
05/21
1
0
Java语言程序设计基础篇 数组(六)

Java语法之数组 数组的定义 数组是对象。 如:int [ ] x = new int[100]; 或 :int x [ ] = new int[100];(这种方式主要是为了适应C/C++程序员) 声明一个数组变量:int [ ] x;并不会在内存...

宿命D风
2018/06/29
0
0
Java 开发必会的 Linux 命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器...

oschina
2015/12/17
20.7K
54

没有更多内容

加载失败,请刷新页面

加载更多

教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

xiangyunyan
22分钟前
5
0
返回提示信息,如:xxx创建成功!

【服务端】在输出的方法块中,加入要输出的字段(qcm_batch_id) QCMUserType.cs: public struct QCM_Custom_Create_Batch_Out_Tag { public BASCoreType.Cmn_Out_T......

_Somuns
22分钟前
5
0
Aliyun Serverless VSCode Extension v1.12.0 发布

Aliyun Serverless VSCode Extension 是阿里云 Serverless 产品 函数计算 Function Compute 的 VSCode 插件,该插件结合了函数计算 Fun 工具以及函数计算 SDK ,是一款 VSCode 图形化开发调试...

阿里云官方博客
22分钟前
6
0
程序员如何培养解决复杂问题的能力?

今天在上网时候,突然看到了这篇文章,感觉非常的适合现在的自己去思考下,可能也适用在座的读者。程序员不仅仅是敲代码,更是一个复合能力的结合体,也不仅仅停留在技术和代码阶段。你想要成...

哥本哈根的小哥
26分钟前
7
0
市场变化驱动产品思维升级

宜信科技中心财富管理产品部负责人Bob,与大家一起聊聊个性化推荐产品功能的设计和B端产品的功能策划方式。 拓展阅读:回归架构本质,重新理解微服务 智慧金融时代,大数据和AI如何为业务赋能...

宜信技术学院
26分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部