递归学习五--折半查找--java
为什么80%的码农都做不了架构师?>>>
折半(二分)查找,是针对已经排好序了的元素来说的
假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
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));}
}
转载于:https://my.oschina.net/amui/blog/513209
递归学习五--折半查找--java相关推荐
- 递归法实现折半查找(二分查找)
题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...
- java 用折半查找,java折半查找算法
//当 low>high 时表示查找区间为空,查找失败 } Java 代码: /** * 二分查找算法 * * @param srcArray 有序数组 * @param target 被查找的 ...
- 递归应用:折半查找法
折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...
- 查找技术——折半查找(二分查找)
写此博客,记录学习. 折半查找又可称作二分查找. 一.基本思想: 其算法就是将表中的数据分为两个区域(左半区和右半区),查找目标target与表的中间值mid进行大小比较.表中数据存储在一维数组中. ...
- 数据结构——折半查找
采用线性方式进行折半查找: Binary_Search(int arr[],int key,int lowIndex,int upperIndex) {int middleIndex = 0;whil ...
- php折半查找算法,PHP如何实现折半查找算法
本文主要介绍了PHP实现的折半查找算法,简单描述了折半查找的原理,并结合实例形式分析了php采用递归与非递归方式实现折半查找算法的相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. 定义:折半查找 ...
- 由有序序列折半查找构建判定树
需要特别强调的是折半查找的判定树是一棵平衡树. 一般对于一个有序序列折半查找过程,需要从中间结点开始结点比较起,这样就会进入左子树或者右子树进行比较,因此,只要明白了树的根结点怎么确定的,就能够递归的 ...
- 21天打卡挑战 - 经典算法之折半查找
CSDN打卡活动产出 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您: 想系统/深入学习某技术知识点- ...
- 经典算法 之 折半查找 python实现
活动地址:CSDN21天学习挑战赛 折半查找 1.查找算法 基本概念 不同查找算法分类 2. 折半查找 伪代码 算法评价 3. 算法实践(Python) 折半查找 参考 1.查找算法 查找(S ...
最新文章
- python左移位运算_python 移位运算符只能用于整型吗
- 一个写得很不错的vuex详解(转)
- Oracle入门(十四C)之转换函数
- 2004-11-28+ 认识Duwamish 7.0(3)错误处理
- android平台malloc_debug使用方法(含测试代码)
- Windows键盘上的截屏按键PrtSc
- 一份关于webpack2和模块打包的新手指南(一)
- 关于AlertDialog的小坑
- LeetCode:Confusing Number II
- python数据爬取并可视化代码,python爬取摩拜单车API数据并做可视化分析(源码)...
- Windows和Mac系统盘瘦身的一些经验
- [Mac软件推荐] 三款提高 Mac 使用效率的必备软件
- 人工智能欠缺对语言和情感的理解和处理能力
- 陈大年:免费很贵创新很累 我如何做WiFi万能钥匙
- event事件坐标详解(clientx, offsetx, screenX等)
- 【数学建模】十二(最后一篇):MATLAB CUMCM真题求解实例三:机理建模型
- Windows下的很多程序都有十分漂亮的菜单
- docker守护进程启动容器时报错Error response from daemon: Container is not running
- stm32f302实现斩波控制步进电机_spwm超级无敌stm32步进电机控制教程
- 内网安全:域内信息收集