当前位置: 首页 > news >正文

4.5.1 顺序查找、折半查找(二分查找)

文章目录

  • 基本概念
  • 顺序查找
  • 折半查找(二分查找)
  • 索引顺序查找

基本概念

在这里插入图片描述
查找表:由同类元素构成的集合。
查找表按照是否可以修改数据表,可分为静态查找表、动态查找表。
静态查找表:不能修改数据表,可进行查询、检索操作。查询是指判断元素是否存在于数据表中。检索是指找到对应元素,获取其属性等相关信息。
动态查找表:可以修改数据表,除了查询、检索外,还能够向数据表插入、删除数据。
关键码:用于标识某个数据项的值。主关键码可以唯一标识数据元素,次关键码能标识多个数据元素。
查找算法:主要操作是将给定值与关键码进行比较,比较成功,则意味着查找成功,否则查找失败。
平均查找长度ASL:可用于衡量查找算法,其计算的是找到关键码时,与给的值进行比较的次数的期望。

顺序查找

在这里插入图片描述
顺序查找就是从数据表的第1条记录开始,逐条与给定值进行比较,直到查找成功。如果整个数据表比较完毕,仍未找到,则查找失败。
顺序查找适用于顺序存储的线性表、链表存储的线性表。
顺序查找方法简单,有无关键码都可以应用。但是数据表中元素较多时,其平均查找长度大。

折半查找(二分查找)

在这里插入图片描述
折半查找是使用给定值与中间位置的值进行比较,如果相等则查找成功。否则,缩小比较范围,重复上述步骤,直到查找成功/查找失败。
折半查找适用于数据有序,且数据表不需要变动的情况。
折半查找的效率高,但是需要数据提前做好排序。

索引顺序查找

在这里插入图片描述
索引顺序查找,先将数据分成若干块,块之间是有序排列的,块内数据是无序的。其查找效率介于顺序查找和折半查找之间。

http://www.lryc.cn/news/520943.html

相关文章:

  • DDD - 微服务设计与领域驱动设计实战(上)_统一建模语言及事件风暴会议
  • 基于Piquasso的光量子计算机的模拟与编程
  • 44_Lua迭代器
  • 相机SD卡照片数据不小心全部删除了怎么办?有什么方法恢复吗?
  • RAG 测评基线
  • 麒麟系统设置tomcat开机自启动
  • java 学习笔记 第二阶段:Java进阶
  • 机组存储系统
  • 【基础工程搭建】内存访问异常问题分析
  • Mysql 和 navicat 的使用
  • 计算机网络(五)运输层
  • 托宾效应和托宾q理论。简单解释
  • 大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建二
  • ClickHouse vs StarRocks 选型对比
  • 04.计算机体系三层结构与优化(操作系统、计算机网络、)
  • UML系列之Rational Rose笔记八:类图
  • Pycharm 使用教程
  • pycharm+pyside6+desinger实现查询汉字笔顺GIF动图
  • vue3学习-day5
  • SpringData-Redis缓存之RedisTemplate
  • 第423场周赛:检测相邻递增子数组 Ⅰ、检测相邻递增子数组 Ⅱ、好子序列的元素之和、统计小于 N 的 K 可约简整数
  • hive知识体系
  • 第三篇 Avaya IP Office的架构及其服务组成
  • AUTOSAR EcuM(ECU状态管理器)
  • 【PyQt】如何在mainwindow中添加菜单栏
  • 浅谈云计算01 | 云计算服务的特点
  • 【开题报告】基于springboot的煤矿安全监测系统的设计与实现
  • 微服务中引入消息队列的利弊
  • Redis缓存穿透、缓存雪崩和缓存击穿
  • EF Core分页