数据结构之折半查找法(Binary Search)
对于要查找的数据已经排序,此时仍然可以使用顺序查找法来进行查找,但是此时有更加简便的方法,
那就是“折半查找法(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)相关推荐
- 【数据结构】折半查找法
问题描述 使用折半查找法实现给定一个有序(非降序)数组A,可含有重复元素,求最大的i使得A[i]小于target,不存在则返回 -1 输入形式 第一行:非降序数组A 第二行:target 输出形式 位 ...
- 算法不会,尚能饭否之折半查找(Binary search)
已经好长时间没有写算法了,今天就写了一个简单的折半查找的算法,很简单.来瞧瞧吧!好了,现在就开始吧! 所谓折半查找,哦,对了,以前的那篇折半排序博文,如果大家看过的话,折半查找那是小 case 了!当 ...
- 数据结构--折半查找法 详解
1. 折半查找法定义 折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...
- 数据结构——折半查找法
版权声明:本文为博主原创文章,转载请注本文链接. /************************ author's email:wardseptember@gmail.com date:2018. ...
- 递归应用:折半查找法
折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...
- 经典算法之折半查找法
活动地址:21天学习挑战赛 目录 一. 算法 概述 算法过程 二.代码实践 三.复杂度分析 时间复杂度 空间复杂度 四.优缺点分析 优点 缺点 一. 算法 概述 折半查找( Binary Search ...
- c语言折半查找法找字符,折半查找法(C语言)
折半查找法(C语言) #include #define max 20 int binary(int x,int list[],int n) /*从list[]中查找x*/ ...
- binarysearch java,java数据结构之二分查找法 binarySearch的实例
java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; p ...
- 题7.15:要求输入一个职工号,用折半查找法查找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。按职工号由小到大顺序排序,姓名顺序也随之调整
题目 本题是谭浩强<C程序设计课后习题>题7.15. 题目: 写几个函数: 1.输入10个职工的姓名和职工号. 2.按职工号由小到大顺序排序,姓名顺序也随之调整 3.要求输入一个职工号,用 ...
最新文章
- WebGL光栅化流水线
- php不同用户显示不同表单_php 实现接收多个name相同但Value不相同表单数据实例...
- 黑马程序员_java之集合框架
- matplotlib安装
- Visual Studio IDE环境下利用模板创建和手动配置CUDA项目教程
- springCloud分布式事务实战(三)分布式事务处理器的编译和运行之注册中心编写与测试...
- win7精简_低配电脑的福音:这款小众系统10GB+极限精简+不卡顿,比Win7还快!
- STM32 位带应用
- HDU 1716 排列2
- 4.Magento的模型和ORM基础
- java输出希腊字符表,希腊字母unicode表
- 黑马程序员—因为感恩,所以我也来深圳黑马当班主任
- PostgreSQL修炼之道之PostgreSQL安装与配置(二)
- 【Stream】java8新特性Stream流总结
- 使用Aptana Studio 3开发python教程
- 三维扫描、三维建模在数字展厅中的应用
- directives(Directives UE 93 42 CEE)
- MinIO入门-02 SpringBoot 整合MinIO并实现文件上传
- 干货 | 三维点云配准:ICP 算法原理及推导
- 无线路由器默认密码大全
热门文章
- Windows相册文件批量管理工具
- 90后的我们,独自漂泊在上海
- toString方法
- 阿里技术男的成长史:越想证明自己死得越快……
- mysql一秒支持多少个请求_假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?...
- are exo exo是什么歌 we_EXO we are one
- html图片纵向排列代码,CSS 日期垂直排列的两种技巧
- OpenPCDetv0.3安装
- 计算机在企业管理中应用按分类,计算机在企业管理中应用.doc
- 组织架构树形结构布局