对于要查找的数据已经排序,此时仍然可以使用顺序查找法来进行查找,但是此时有更加简便的方法,
那就是“折半查找法(Binary Search)”。

折半查找法的实现步骤如下:
假设数组的上下范围分别为low和high,则此时中间元素是(low + hihg) / 2。在进行查找时。
1.如果查找关键码小于数组的中间元素,则关键码在数据数组的前半部。
2.如果查找关键码大于数组的中间元素,则关键码在数据数组的后半部。
3.如果查找关键码等于数组的中间元素,则中间元素就是查找的值。

对于如下的例子:
1, 2, 3, 4, 5, 6, 7, 8, 9

若要查找的整数是8,则
第一步是与中间的元素索引4的值5进行比较。因为8>5,所以在后半段进行查找,
后半段如下 6, 7, 8, 9

第二步是与中间的元素索引是6的值7进行比较,因为8>7,所以继续在后半段进行查找,
后半段如下:8,9

第三步,此时的中间元素的索引是7的值8,即为我们我查找的值。

数据结构之折半查找法(Binary Search)相关推荐

  1. 【数据结构】折半查找法

    问题描述 使用折半查找法实现给定一个有序(非降序)数组A,可含有重复元素,求最大的i使得A[i]小于target,不存在则返回 -1 输入形式 第一行:非降序数组A 第二行:target 输出形式 位 ...

  2. 算法不会,尚能饭否之折半查找(Binary search)

    已经好长时间没有写算法了,今天就写了一个简单的折半查找的算法,很简单.来瞧瞧吧!好了,现在就开始吧! 所谓折半查找,哦,对了,以前的那篇折半排序博文,如果大家看过的话,折半查找那是小 case 了!当 ...

  3. 数据结构--折半查找法 详解

      1. 折半查找法定义          折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...

  4. 数据结构——折半查找法

    版权声明:本文为博主原创文章,转载请注本文链接. /************************ author's email:wardseptember@gmail.com date:2018. ...

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

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

  6. 经典算法之折半查找法

    活动地址:21天学习挑战赛 目录 一. 算法 概述 算法过程 二.代码实践 三.复杂度分析 时间复杂度 空间复杂度 四.优缺点分析 优点 缺点 一. 算法 概述 折半查找( Binary Search ...

  7. c语言折半查找法找字符,折半查找法(C语言)

    折半查找法(C语言) #include #define max 20 int binary(int x,int list[],int n)               /*从list[]中查找x*/ ...

  8. binarysearch java,java数据结构之二分查找法 binarySearch的实例

    java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; p ...

  9. 题7.15:要求输入一个职工号,用折半查找法查找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。按职工号由小到大顺序排序,姓名顺序也随之调整

    题目 本题是谭浩强<C程序设计课后习题>题7.15. 题目: 写几个函数: 1.输入10个职工的姓名和职工号. 2.按职工号由小到大顺序排序,姓名顺序也随之调整 3.要求输入一个职工号,用 ...

最新文章

  1. WebGL光栅化流水线
  2. php不同用户显示不同表单_php 实现接收多个name相同但Value不相同表单数据实例...
  3. 黑马程序员_java之集合框架
  4. matplotlib安装
  5. Visual Studio IDE环境下利用模板创建和手动配置CUDA项目教程
  6. springCloud分布式事务实战(三)分布式事务处理器的编译和运行之注册中心编写与测试...
  7. win7精简_低配电脑的福音:这款小众系统10GB+极限精简+不卡顿,比Win7还快!
  8. STM32 位带应用
  9. HDU 1716 排列2
  10. 4.Magento的模型和ORM基础
  11. java输出希腊字符表,希腊字母unicode表
  12. 黑马程序员—因为感恩,所以我也来深圳黑马当班主任
  13. PostgreSQL修炼之道之PostgreSQL安装与配置(二)
  14. 【Stream】java8新特性Stream流总结
  15. 使用Aptana Studio 3开发python教程
  16. 三维扫描、三维建模在数字展厅中的应用
  17. directives(Directives UE 93 42 CEE)
  18. MinIO入门-02 SpringBoot 整合MinIO并实现文件上传
  19. 干货 | 三维点云配准:ICP 算法原理及推导
  20. 无线路由器默认密码大全

热门文章

  1. Windows相册文件批量管理工具
  2. 90后的我们,独自漂泊在上海
  3. toString方法
  4. 阿里技术男的成长史:越想证明自己死得越快……
  5. mysql一秒支持多少个请求_假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?...
  6. are exo exo是什么歌 we_EXO we are one
  7. html图片纵向排列代码,CSS 日期垂直排列的两种技巧
  8. OpenPCDetv0.3安装
  9. 计算机在企业管理中应用按分类,计算机在企业管理中应用.doc
  10. 组织架构树形结构布局