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

数据结构第七章-查找(1.基础内容)

注:在一轮复习的时候花了快一周学校这一章,是因为这章的题目难度在初学时,还算比较复杂,对于各种查找的过程,要比较清楚。

总知识框架:
 

复习:本章是考研的重点。对于折半查找,应掌握折半查找的过程、构造判定树、分析平均查找长度等。对于二叉排序树、二叉平衡树和红黑树,要了解它们的概念、性质和相关操作等。B树和B+树是本章的难点。对与B树,考研大纲要求掌握插入、删除和查找的操作过程;对于B+树,仅要求了解其基本概念和性质。对于散列查找,应掌握散列表的构造、冲突处理方法(各种方法处理过程)、查找成功和查找失败的平均查找长度、散列查找的特征和性能分析。

基于上述,对于过程,自己要很熟悉,最好的办法是,自己一定要一个一个步骤来,逐步的显示,对比操作,进行自我检验。

注:再二轮开始复习之前,可以自己先按照自己的复习方式迅速过一遍。

注:为什么自己要写一遍,不直接拍,还是想自己在打字的时候可以对这一章的知识点的内容记忆更再次复盘一次。这一章自己学的兴趣还是比较大的,对于B树,是有点复杂,听课听烦了,我就直接去对着书中的题和答案,自己摸索这个过程,效果还好,做了几个之后继续听课,然后听完了,再自己重新做一遍。

1.查找的基本概念

  • 查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找。查找的结果一般分为两种:一是查找成功,即在数据集合中找到满足条件的数据元素;二是查找失败。
  • 查找表(查找结构):用于查找的由同一类型的数据元素(或记录)构成的集合。查找表本质是表中记录之间仅存在"同属一个集合”这个逻辑的集合结构。为此,我们在数据元素之间人为地加上一些关系,以便按照某种规则查找,即用另一种数据结构来表示查找表。
  • 对查找表进行的操作一般有四种:①查询某个特定的数据元素是否在查找表中;②检索满足条件的某个特定的数据元素的各自属性; ③在查找表中插入一个数据元素;④在查找表中删除某个数据元素。只作前两种查找操作的查找表为静态查找表;可以作上述四种操作,即在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素的为动态查找表。
  • 关键字:数据元素中可以标识元素的某个数据项的值。主关键字可以唯一标识一个记录,次关键字可以识别若干记录。使用基于主关键字的查找,查找结果应该是唯一的。
  • 平均查找长度:为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值:

补充:按分类:静态查找表、动态查找表。

适合静态查找(仅关注查找速度即可)的方式:顺序查找、折半查找、散列查找等。

适合动态查找(除直线速度,也要关注插/删除操作是否方便)的方式:二叉排序树的查找、散列查找等。

2.表格类比复习

注:(相对于二刷)重点强调一下,为以后做铺垫。

重点:关注表的分类

查找算法的评价指标:

 

 查找算法的评价指标(举例):相对于回顾一遍

成功:

 失败:

 

相关文章:

  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑动态定价的新能源汽车能源站优化运行》
  • 【小海实习日记】问题排查思路
  • python解决flask启动的同时启动定时任务
  • 疫情物资捐赠和分配系统的设计
  • ARM功耗管理之系统分区-电压域和电源域
  • Fastjson 反序列化漏洞[1.2.24-rce]
  • 06.持久化存储
  • Spring解决循环依赖
  • Ansys Mechanical|组装 External Mechanical Model
  • c++中 unordered_map 与 unordered_set 用法指南
  • 深入分析 Android BroadcastReceiver (一)
  • pqgrid的使用
  • 如何快速找到 RCE
  • 情感读本期刊万方收录综合期刊投稿
  • flinksql 回撤流中主键发生变更的影响(group by中的值发生改变)
  • axios 和 cookie 的那些事
  • C# 免费离线人脸识别 2.0 Demo
  • es的写入过程
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Github访问慢解决办法
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Linux快速复制或删除大量小文件
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • nodejs实现webservice问题总结
  • node学习系列之简单文件上传
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python 装饰器(一)
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue 2.3、2.4 知识点小结
  • 包装类对象
  • 闭包,sync使用细节
  • 从伪并行的 Python 多线程说起
  • 番外篇1:在Windows环境下安装JDK
  • 工作手记之html2canvas使用概述
  • 前端临床手札——文件上传
  • 强力优化Rancher k8s中国区的使用体验
  • 让你的分享飞起来——极光推出社会化分享组件
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #HarmonyOS:Web组件的使用
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $nextTick的使用场景介绍
  • (20050108)又读《平凡的世界》
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C)一些题4
  • (C++17) std算法之执行策略 execution
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级