数据结构 第八章 查找目录

本文深入探讨数据查找技术,包括基本概念、顺序表、索引顺序表、倒排表、二叉排序树、平衡二叉树、B-树及散列表等。详细解析查找算法原理,如折半查找、散列函数及冲突处理方法,并讨论查找效率和装载因子的影响。


在这里插入图片描述

8.1 基本概念

  1. 数据表:数据元素的有限集合。
  2. 关键字:数据表中数据元素一般有多个属性域(字段),即由多个数据成员组成,其中有某些属性域可用来区分不同的元素,它们可作为查找或排序的依据,这些属性域即为关键字。
    ①即使是同一个表,在解决不同问题的场合也可能取不同的域作关键字。
    ②如果在数据表中各个元素的关键字互不相同,这种关键字称为主关键字。
  3. 查找:查找是数据处理中最常用的一种运算。最常见的一种方式是事先给定一个值,在数据表中查找其关键字等于给定值的数据元素。查找的结果通常有两种可能:
    (1)查找成功,即找到关键字等于给定值的数据元素,这时作为查找结果,可报告该数据元素在数据表中的位置,还可进一步给出该数据元素的具体信息,后者在数据库技术中叫作检索。
    (2)查找不成功(查找失败),即数据表中找不到其关键字等于给定值的数据元素,此时查找的结果可给出一个“空”记录或“空”指针。
  4. 静态查找表和动态查找表:数据表的组织有两种不同方式。
    (1)静态查找表,表中元素固定不变,当查找失败时,作为查找结果只报告一些信息,如失败标志、失败位置等。
    (2)动态查找表,表中元素在插入或删除数据元素过程中会得到调整,当查找失败时,则把给定值的数据元素插入数据表中。
    (3)相比较而言,静态查找表的结构较为简单,操作较为方便,但查找表的内容相对固定,不易扩展
  5. 查找的效率:查找的时间复杂度一般用平均查找长度(ASL)来衡量。
    平均查找长度是指在数据表中查找各数据元素所需进行的关键字比较次数的期望值,其数学定义为:ASL=Σ(i=1到n) Pi ×Ci
    其中,Pi表示第i个数据元素被查找的概率,Ci表示查找第i个数据元素所需进行关键字的比较次数。
  6. 装载因子:它代表了数据表中数据元素的装载情况。设数据表的长度为m,表中数据元素个数为n,则数据表的装载因子α=n/m

8.2 顺序表

8.2.1 顺序表的查找
8.2.2 有序表的折半查找(迭代/递归/二叉查找树)

8.3 索引顺序表和倒排表

8.3.1 索引顺序表(完全索引/二级索引)
8.3.2 倒排表(链式/单元式)

8.4 二叉排序树

8.5 平衡二叉树

8.6 B-树

8.6.1 动态的m路查找树
8.6.2 B-树
8.6.3 B+树

8.7 散列表

8.7.1 散列表的基本概念
8.7.2 散列函数(直接定址法、数字分析法、除留余数法、乘余取整法、平方取中法、随机数法)
8.7.3 处理冲突的闭散列方法——开地址方法(线性探测法、二次探测法、双散列法)
8.7.4 闭散列方法的实现
8.7.5 处理冲突的开散列方法——链地址法
8.7.6 散列表分析

100以内的质数共有25个.2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值