本篇文章将介绍折半查找算法。

文章目录

  • 何为折半查找?
  • 算法实现
  • 递归实现
  • 效率分析

何为折半查找?

上一篇文章介绍了顺序查找算法,我们知道,虽然顺序查找算法适用性高,但效率太低,那么能不能在此基础上继续提高算法的效率呢?

这个时候,折半查找诞生了,它的原理是每次都将待查找的记录所在的区间缩小一半,比如:

若要在该序列中查找元素值4,折半查找是如何做到的呢?

它需要先设置两个游标,一个指向最左边,一个指向最右边:
这两个游标所表示的范围即为查找区间,初始我们在下标为1到10的区间内查找,这个查找也是讲究方法的,不是一个一个地去遍历查找。

我们还需要借助一个游标,用它来表示区间的中间位置:

这个mid表示的就是区间的中间位置

【查找算法】折半查找法相关推荐

  1. 查找算法——折半查找(JAVA)

    折半查找 问题描述:给定一个整数X和整数A0,A1,A2--A(n-1),后者已经预先排序并在内存中,求下标i使得Ai = X ,如果X不在数据中,则返回i = -1. 我们首先可以想到的一种方法就是 ...

  2. 查找算法——折半查找

    介绍 折半查找,又称作二分查找.这个查找的算法的特点,就是,要求数据要是有序的. 1 ,存储结构一定是顺序存储 2 ,关键字大小必须有序排列 然后,利用这组有序的数据之间的关系,来进行折半的查找. 比 ...

  3. python实现二分查找(折半查找)算法

    python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...

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

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

  5. php折半查找算法,php二分法查找(也叫折半查找)算法 (数组必须是从小到大的)

    //php二分法查找(也叫折半查找)算法/ 数组必须是从小到大的 $abs=array(1,12,13,114,115,116,117,118); //z查找数组的最大下标 $hight = coun ...

  6. 进行范围查找的折半查找法

    import java.util.Scanner;public class Main {public static void main(String[] args) { System.out.prin ...

  7. 二分查找(折半查找)算法

    一.二分查找算法基本思想 二分查找(Binary Search),又称折半查找,是一种在有序数组(前提条件)中查找某一特定元素的查找算法. 查找过程从数组的中间元素开始,若中间元素正好是要查找的元素, ...

  8. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  9. 查找(包括顺序查找和折半查找)

    顺序查找 顺序查找又叫线性查找,主要用于线性表中的查找.顺序查找通常情况下分为对一般无序线性表的查找和对按关键字有序的顺序表的查找.下面进行比较讨论: 1.一般线性表的查找 作为一个直观的查找方法,其 ...

  10. Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找

    Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...

最新文章

  1. 2021年大数据ELK(七):安装Elasticsearch-head插件
  2. 使用命令行创建AVD时的出错总结
  3. 安装报错_RG Magic Bullet安装报错修复方法
  4. C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
  5. shell中几个特殊的符号
  6. OVS数据库操作(四十七)
  7. Leetcode 138. 复制带随机指针的链表 解题思路及C++实现
  8. 自动查找并删除VC生成的临时文件
  9. LeetCode_每日一题今日份_329.矩阵中的最长递增路径(没懂)
  10. Python 进阶_模块 amp; 包
  11. Css3系列-新属性新布局
  12. mybatisdb.sql
  13. hadoop-0.21.0-eclipse-plugin无法在eclipse中运行解决方案
  14. Windows 10 开启有线无线802.1x脚本
  15. 英语学习笔记2019-11-22
  16. jquery 日期选择器
  17. linux nginx rtmp 直播,linux下利用nginx搭建rtmp直播服务
  18. 中标麒麟操作系统离线安装nginx
  19. DH算法图解+数学证明
  20. lighty2.0沙箱版本的协议和配置分析采用ragel 成功案例

热门文章

  1. HMI-7-[高分屏支持]:Qt 适配高分屏
  2. 返回状态码304 Not Modified详解
  3. 英雄联盟原版下载器+解除wegame自动下载
  4. Java项目:ssm教务管理系统
  5. excel中地理坐标经纬度格式调整:保留两位小数
  6. 程序员遇到 Bug 时的 30 个反应,你是哪一种?
  7. Kotlin协变和逆变
  8. iftop---实时流量监控工具
  9. Oracle创建定时任务教程
  10. 十进制转换为二、十六进制的方法