为什么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相关推荐

  1. 递归法实现折半查找(二分查找)

    题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...

  2. java 用折半查找,java折半查找算法

    //当 low>high 时表示查找区间为空,查找失败 } Java 代码: /** * 二分查找算法 * * @param srcArray 有序数组 * @param target 被查找的 ...

  3. 递归应用:折半查找法

    折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...

  4. 查找技术——折半查找(二分查找)

    写此博客,记录学习. 折半查找又可称作二分查找. 一.基本思想: 其算法就是将表中的数据分为两个区域(左半区和右半区),查找目标target与表的中间值mid进行大小比较.表中数据存储在一维数组中. ...

  5. 数据结构——折半查找

    采用线性方式进行折半查找: Binary_Search(int arr[],int key,int lowIndex,int upperIndex) {int middleIndex = 0;whil ...

  6. php折半查找算法,PHP如何实现折半查找算法

    本文主要介绍了PHP实现的折半查找算法,简单描述了折半查找的原理,并结合实例形式分析了php采用递归与非递归方式实现折半查找算法的相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. 定义:折半查找 ...

  7. 由有序序列折半查找构建判定树

    需要特别强调的是折半查找的判定树是一棵平衡树. 一般对于一个有序序列折半查找过程,需要从中间结点开始结点比较起,这样就会进入左子树或者右子树进行比较,因此,只要明白了树的根结点怎么确定的,就能够递归的 ...

  8. 21天打卡挑战 - 经典算法之折半查找

    ​​CSDN打卡活动产出 ​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您: 想系统/深入学习某技术知识点- ...

  9. 经典算法 之 折半查找 python实现

    ​ ​ 活动地址:CSDN21天学习挑战赛 折半查找 1.查找算法 基本概念 不同查找算法分类 2. 折半查找 伪代码 算法评价 3. 算法实践(Python) 折半查找 参考 1.查找算法 查找(S ...

最新文章

  1. python左移位运算_python 移位运算符只能用于整型吗
  2. 一个写得很不错的vuex详解(转)
  3. Oracle入门(十四C)之转换函数
  4. 2004-11-28+ 认识Duwamish 7.0(3)错误处理
  5. android平台malloc_debug使用方法(含测试代码)
  6. Windows键盘上的截屏按键PrtSc
  7. 一份关于webpack2和模块打包的新手指南(一)
  8. 关于AlertDialog的小坑
  9. LeetCode:Confusing Number II
  10. python数据爬取并可视化代码,python爬取摩拜单车API数据并做可视化分析(源码)...
  11. Windows和Mac系统盘瘦身的一些经验
  12. [Mac软件推荐] 三款提高 Mac 使用效率的必备软件
  13. 人工智能欠缺对语言和情感的理解和处理能力
  14. 陈大年:免费很贵创新很累 我如何做WiFi万能钥匙
  15. event事件坐标详解(clientx, offsetx, screenX等)
  16. 【数学建模】十二(最后一篇):MATLAB CUMCM真题求解实例三:机理建模型
  17. Windows下的很多程序都有十分漂亮的菜单
  18. docker守护进程启动容器时报错Error response from daemon: Container is not running
  19. stm32f302实现斩波控制步进电机_spwm超级无敌stm32步进电机控制教程
  20. 内网安全:域内信息收集

热门文章

  1. Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy
  2. 第100天:CSS3中animation动画详解
  3. thinkphp-比较标签-eq
  4. 使用SharedPreferences进行数据存储
  5. hive 小技巧总结
  6. 面向对象实验一(类与对象)
  7. [gist]Android SHA-1
  8. Linux桌面版横评:三、Fedora 7 Live
  9. elasticsearch常见报错总结
  10. 安卓 存储---SharedPreferences