《数据结构导论》之查找表

简介: 我们知道,将数据采用顺序存储或者链式存储等多种方式存储不是最终目的,我们要使用存储的数据,发挥它的作用。但是,在使用数据时,要先对数据进行查找,在日常生活和各种软件系统中,查找是一种十分常见的操作,下面我为大家讲解一下我对查找表的理解。

  我们知道,将数据采用顺序存储或者链式存储等多种方式存储不是最终目的,我们要使用存储的数据,发挥它的作用。但是,在使用数据时,要先对数据进行查找,在日常生活和各种软件系统中,查找是一种十分常见的操作,下面我为大家讲解一下我对查找表的理解。


导图:

20160917213613572.png



由图可以看出,查找表可分为动态查找表和静态查找表。之所以这么区分他们,是根据我们的需求而来。如果我们仅需要查找表中的某一元素或某一元素的属性,则使用静态查找,如果需要对查找表结构进行修改,则选择动态查找。


静态查找表:


静态查找表中,最简单的实现方式是以顺序表为存储结构,顺序表的存储更像我们的数组,通过键值进行存储。查找时,从表的最后一个元素开始向前查找,设置第一个元素为岗哨,将要被查找的值赋给岗哨。每次拿岗哨的值与表中的值从后向前做对比。查到后终止,返回位置。也可以倒过来,将岗哨放在最后,从后往前查。

  静态查找表是已经完全储存好数据的表,为了提高查找速率,我们将数据进行处理,使其有序。方法有两种:按块有序,建立有序表。按块有序,将数据分块,标明每块的最大键值和块起始位置(索引派上用场)。在查找时,分两个阶段:第一阶段,将key与最大键值比较确定在哪个块(这个过程可以使用二分查找,也可使用顺序查找)。而建立完全的有序表后,就可以使用我们最熟悉的二分查找(向下取整)。


动态查找表:


静态查找表一旦建立后,所含的数据元素是固定不变的,动态查找表是根据排序规则实现边查边生成。有两种方式:二叉排序树(二分法)和散列表(函数关系)。


二叉排序树:


性质:

若左子树不空,则左子树上所有的结点的键值均小于根结点键值

若右子树不空,则右子树上所有的结点的键值均大于根结点键值

根的左右子树也分别为二叉排序树。

中序遍历得到升序序列(有序序列)  

 查找二叉排序树中的数据和向其中插入数据都需要查找,因为二叉树的性质,查找的过程就使用了二分法规则。二叉排序树是一种树形存储,和顺序表一样,都是将值存储到某种结构中,根据该结构的位置找到存储位置。我们在使用该值时,要先用键值进行比较,才能找到在该结构中的位置,比如,数组 ele【i】=key。

散列表:

  散列表使用函数将键值和存储地址建立函数关系,直接根据key找到存储位置,不需要找i。关于散列表,主要是解决同义词之间的冲突,相信大家看我的导图就能理解了,我就不多做解释了。

最后:


  这是我对概念的简单理解,还没有联系到具体的生活中,如果大家有更通俗的理解,希望咱们能一起探讨。



相关文章
|
9月前
|
算法 搜索推荐
数据结构和算法——表排序(算法概述、物理排序、复杂度分析,包含详细清晰图示过程)
数据结构和算法——表排序(算法概述、物理排序、复杂度分析,包含详细清晰图示过程)
75 0
|
9月前
|
数据库
电商购物系统商品数据结构设置 -- 商品类别表
电商购物系统商品数据结构设置 -- 商品类别表
|
10月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之在ADB中,如何将源数据的多表(数据结构一致)汇总到一张表
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
10月前
|
机器学习/深度学习 存储 算法
初阶数据结构之---导论,算法时间复杂度和空间复杂度(C语言)
初阶数据结构之---导论,算法时间复杂度和空间复杂度(C语言)
|
10月前
|
存储 算法 索引
【数据结构入门精讲 | 第四篇】考研408、企业面试表专项习题
【数据结构入门精讲 | 第四篇】考研408、企业面试表专项习题
264 0
|
10月前
|
存储
【数据结构入门精讲 | 第三篇】一文讲清表
【数据结构入门精讲 | 第三篇】一文讲清表
79 0
|
10月前
|
存储 Rust C语言
【一起学Rust | 进阶篇 | Grid库】二维表数据结构——Grid
【一起学Rust | 进阶篇 | Grid库】二维表数据结构——Grid
201 0
|
SQL Oracle 关系型数据库
PL/SQL生成表的数据结构关系图
PL/SQL生成表的数据结构关系图
164 0
|
关系型数据库 MySQL 索引
数据结构导论——总结
数据结构学习了N遍了,但是每一次对它的认识将会更加深入;尤其是本次,再加上本次通过高效的学习思路和方法,对于她的理解终于用无数次的回眸换来了微微一笑。