查找表以及按操作方式将其分为的两大类(静态查找表、动态查找表)

在计算机科学中,查找(Searching)是指根据给定的某个值,在查找表(Search Table)中确定一个其关键字等于给定值的数据元素(或记录)。

值(Value):在查找过程中,我们需要根据给定的值来在查找表中查找对应的数据元素。这个值可以是任何类型的数据,例如整数、字符串、对象等。
查找表(Search Table):查找表是一种存储和组织数据的数据结构,它可以是数组、链表、树等。查找表中的数据元素通常是按照一定的顺序进行排列,以便进行高效的查找操作。常见的查找表包括数组、有序数组、二叉搜索树、哈希表等。
关键字(Key):在查找表中,每个数据元素都有一个关键字用于唯一标识该元素。关键字可以是数据元素中的某个属性,例如在学生信息表中可以使用学号作为关键字。
给定值的数据元素:在查找操作中,我们要找到的是在查找表中关键字等于给定值的数据元素。这个数据元素可以包含与关键字相关的其他属性或信息。

具体来说,查找操作的目标是在查找表中找到一个数据元素,其关键字的值与给定值相等。这个操作是通过对查找表中的数据元素进行比较,逐个检查其关键字的值与给定值是否相等来实现的。找到匹配的数据元素后,可以根据需求进行进一步的操作,例如读取、修改或删除等。

需要注意的是,不同的查找表和查找算法适用于不同的场景和要求。选择合适的查找表和算法对于提高查找效率和降低时间复杂度是非常重要的。

所以说,

查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素
(或记录)。
若表中存在这样的一个记录,则称查找是成功的,此时查找的结果给出整个记录的信息,或指示该记录在查找表中的位置。
若表中不存在关键字等于给定值的记录,则称查找不成功,此时查找的结果可给出一个“空”记录或“空”指针。


查找表按照操作方式来分有两大种:静态查找表和动态查找表。
静态查找表(Static Search Table)

只作查找操作的查找表。它的主要操作有:

(1)查询某个“特定的”数据元素是否在查找表中。

(2)检索某个“特定的”数据元素和各种属性。


按照我们大多数人的理解,查找,当然是在已经有的数据中找到我们需要的。静态查找就是在干这样的事情,不过,现实中还有存在这样的应用:查找的目的不仅仅只是查找。


比如网络时代的新名词,如反应年轻人生活的“蜗居”、“蚁族”、“孩奴”、“啃老”等,以及“X客”系列如博客、播客、闪客、黑客、威客等,如果需要将它们收录到汉语词典中,显然收录时就需要查找它们是否存在,以及找到如果不存在时应该收录的位置。再比如,如果你需要对某网站上亿的注册用户进行清理工作,注销一些非法用户,你就需查找到它们后进行删除,删除后其实整个查找表也会发生变化。对于这样的应用,我们就引入了动态查找表。


动态查找表(Dynamic Search Table):

在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。

显然动态查找表的操作就是两个:

(1)查找时插入数据元素。

(2)查找时删除数据元素。

为了提高查找的效率,我们需要专门为查找操作设置数据结构,这种面向查找操作的数据结构称为查找结构。
从逻辑上来说,查找所基于的数据结构是集合,集合中的记录之间没有本质关系。可是要想获得较高的查找性能,我们就不能不改变数据元素之间的关系,在存储时可以将查找集合组织成表、树等结构。
例如,对于静态查找表来说,我们不妨应用线性表结构来组织数据,这样可以使用顺序查找算法,如果再对主关键字排序,则可以应用折半查找等技术进行高效的查找。
如果是需要动态查找,则会复杂一些,可以考虑二叉排序树的查找技术。另外,还可以用散列表结构来解决一些查找问题。
 

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值