`

1.4 二分查找

阅读更多

★ 十分查找算法的基本思想:

   ● 前提: 有序数组

   ● 基本思想: 对一个有序数组,定义三个游标:lowerBound(指向数组的第一个位置),upperBound(指向数组的最后一个位置),然后依次循环取current(当前数组中间那个位置),比较所要查找的值searchValue与arr[current](当前数组中间位置的那个值)的关系,如果arr[current]==searchValue,则返回current;如果lowerBound>upperBound,则表示数组中不存在所要查找的那个值,我们用数组的长度来作为返回值,如果arr[current]>searchValue,则将upperBound=current-1,否则lowerBound= current+1

	public int binarySearch(long searchValue){
		int lowerBound = 0;
		int higherBound = this.getLen()-1;
		int current = 0;
		while(true){
			current = (lowerBound+higherBound)/2;
			if(this.getElement(current) == searchValue){
				return current;
			}else if(lowerBound > higherBound){
				return this.getLen();
			}else{
				if(this.getElement(current) > searchValue){
					higherBound = current - 1;
				}else{
					lowerBound = current + 1;
				}
			}
		}
	}

 

 

 

分享到:
评论

相关推荐

    计算机二级公共基础知识

    1.4 队列 1. 队列的基本概念 队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。当表中没有元素时称为空队列。 队列的修改是依照先进先出的原则...

    算法第四版-PDF-网盘链接

     1.1.10 二分查找 28  1.1.11 展望 30  1.2 数据抽象 38  1.2.1 使用抽象数据类型 38  1.2.2 抽象数据类型举例 45  1.2.3 抽象数据类型的实现 52  1.2.4 更多抽象数据类型的实现 55  1.2.5 ...

    基于Android的聊天室应用 ChatRoom 1.4

    七、这个项目完成可不止十天哪,所以收10分不过分,如果你觉得很需要一个聊天类的应用参考实践一下,那这就是你所需要的,这只是一个一对多的聊天应用,当然你可以自己扩展成一对一的,其实就是再加一个页面就可以了...

    算法-第4版-完整版

    1.1.10 二分查找 28 1.1.11 展望 30 1.2 数据抽象 38 1.2.1 使用抽象数据类型 38 1.2.2 抽象数据类型举例 45 1.2.3 抽象数据类型的实现 52 1.2.4 更多抽象数据类型的实现 55 1.2.5 数据类型的...

    Delphi算法与数据结构 源码(上)

    这本书强调了查找算法(如顺序和二分查找),另外也重点介绍了排序算法(包括冒泡排序、插入排序、希尔排序、快速排序和堆排序),此外还提供了有关的优化技术。不仅如此,作者还介绍了散列和散列表、优先队列、状态...

    Delphi算法与数据结构 源码(下)

    这本书强调了查找算法(如顺序和二分查找),另外也重点介绍了排序算法(包括冒泡排序、插入排序、希尔排序、快速排序和堆排序),此外还提供了有关的优化技术。不仅如此,作者还介绍了散列和散列表、优先队列、状态...

    算法 第4版 高清中文版

    1.1.10 二分查找 28 1.1.11 展望 30 1.2 数据抽象 38 1.2.1 使用抽象数据类型 38 1.2.2 抽象数据类型举例 45 1.2.3 抽象数据类型的实现 52 1.2.4 更多抽象数据类型的实现 55 1.2.5 数据类型的设计 60 1.3 ...

    《算法》中文版,Robert Sedgewick,塞奇威克

    1.1.10 二分查找 1.1.11 展望 1.2 数据抽象 1.2.1 使用抽象数据类型 1.2.2 抽象数据类型举例 1.2.3 抽象数据类型的实现 1.2.4 更多抽象数据类型的实现 1.2.5 数据类型的设计 1.3 背包、队列和栈 1.3.1 API...

    算法,4th,塞奇威克 (Robert Sedgewick)韦恩 (Kevin Wayne), 谢路云 译.azw3

    1.1.10 二分查找 1.1.11 展望 1.2 数据抽象 1.2.1 使用抽象数据类型 1.2.2 抽象数据类型举例 1.2.3 抽象数据类型的实现 1.2.4 更多抽象数据类型的实现 1.2.5 数据类型的设计 1.3 背包、队列和栈 1.3.1 API ...

    算法 第4版-谢路云译-带完整书签

    3.1.5 有序數组中的二分查找 238 3.1.6 对二分査找的分析 242 3.1.7 预览 244 3.2 二叉查找树 250 3.2.1 基本实现 250 3.2.2 分析 255 3.2.3 有序性相关的方法与删除操作 257 3.3 平衡査找树 269 ...

    LeetCode刷题模板.pdf

    1.1. 什么是二分查找 5 1.2. 如何识别二分法 5 1.3. 二分法模板 6 1.3.1. 模板一 6 1.3.1.1. 模板代码 6 1.3.1.2. 关键属性 7 1.3.1.3. 语法说明 7 1.3.1.4. Lc69:x的平方根 8 1.3.1.5. Lc374:猜数大小 9 1.3.1.6. ...

    leetcode跳跃-Leetcode_Cplusplus:C++中的Leetcode解决方案

    leetcode 跳跃 @SharonXuran 更新于2019/8/3 Leetcode_C++ 按知识点分类整理了Leetcode的一些题目,给出编程思路,提供了参考的C++实现代码。...二分查找与二叉搜索树 6.1 6.2 6.3 6.4 6.5 6.6 7. 哈希表与字符串 7.2

    计算机考研机试攻略 - 高分篇(试读).pdf

    3.8 二分快速幂 83 3.9 常见数学公式总结 85 3.10 规律神器OEIS 87 第四章 高精度问题 89 4.1 Python解法 90 4.2 Java解法 91 4.3 C/C++解法 92 第五章 数据结构 93 5.1 栈的应用 94 5.2 哈夫曼树 96 5.3 ...

    理想家园企业建站CMS系统 v1.4完整无限制版

    产品管理:可实现二级分类,不同的大类下边套用不同的小类。 友情链接:增加/修改/删除图片链接。 留言管理:留言回复/审核功能,前台发表和显示留言列表。 数据备份:可以在线备份数据库,以保数据安全。 繁简转化...

    LeetCode解题总结

    7.3 在二维排序数组中查找给定值 7.4 在旋转有序数组中查找最小值 7.4.1 数组无重复 7.4.2 数组有重复 7.5 在旋转排序数组中查找指定数字 8. 暴力枚举法 8.1 求集合的子集 8.2 集合的全排列 8.3 在指定树中选择进行...

    leetcode卡-hello-leetcode:hello-leetcode

    ####2.1、二分查找 ####2.2、递归I ####2.3、数组类算法 ####2.4、查找表类算法 ####2.5、初级算法 ####2.6、中级算法 ##每日任务 ####3.1、每日打卡(建议写题解) ####3.2、每日三题(建议从题库里的medium中选) ...

    常用算法程序集(C语言描述)(第三版)+完整源代码

    常用算法程序集(C语言描述)(第三版) 清晰PDF版,配完整源代码。 第1章 多项式的计算 1.1 一维多项式求值 ...16.5 按关键字有序的磁盘随机文本文件的对分查找 16.6 磁盘随机文本文件的字符串匹配

    第一篇 基础篇UNIX操作系统

    4.2 利用find命令查找文件 18 4.3 grep命令基本用法 19 4.4 利用cmp命令比较文件 20 4.5 文件的备份和恢复实用程序 20 一、tar命令 20 二、cpio命令 21 4.6 文件压缩和解压程序 22 一、compress 压缩命令 22 二、...

    C/C++常用算法手册.秦姣华(有详细书签).rar

    《C/C++常用算法手册》分3篇,共13章,“第1篇算法基础篇”介绍了算法概述,重点分析了数据结构和基本算法思想;“第2篇算法基本应用篇”详细讲解了算法在排序、查找、数值计算、数论、经典趣题和游戏中的应用;“第...

Global site tag (gtag.js) - Google Analytics