动态查找与静态查找的区分

1、静态查找

首先无论是静态查找还是动态查找,都要有查找的对象,也就是包含很多同类型数据的“表”,这个“表”可以理解为一个由同类型数据元素组成的一个“集合”,该集合可以用各种容器来存储,例如数组、链表、树等,我们统称这些存储数据的数据结构为——查找表。可见,查找表有时是我们传统意义的表,有时候是很复杂的一种结构。

静态查找就是我们平时概念中的查找,是“真正的查找”。之所以说静态查找是真正的查找,因为在静态查找过程中仅仅是执行“查找”的操作,即:(1)查看某特定的关键字是否在表中(判断性查找);(2)检索某特定关键字数据元素的各种属性(检索性查找)。这两种操作都只是获取已经存在的一个表中的数据信息,不对表的数据元素和结构进行任何改变,这就是所谓的静态查找。

常见的静态查找(表):顺序查找、二分法查找、索引顺序查找(分块查找)、斐波那契查找等

2、动态查找

看到上面静态查找的概念,动态查找就很好理解了,个人总觉得动态查找不像是“查找”,动态查找它更像是一个对表进行“创建、扩充、修改、删除”的过程。动态查找的过程中对表的操作会多两个动作:(1)首先也有一个“判断性查找”的过程,如果某特定的关键字在表中不存在,则按照一定的规则将其插入表中;(2)如果已经存在,则可以对其执行删除操作。动态查找的过程虽然只是多了“插入”和“删除”的操作,但是在对具体的表执行这两种操作时,往往并不是那么简单。

常见的动态查找(表):各种树(二叉搜索树、AVL、B/B+树、红黑树等等)、哈希表

原文地址:https://www.cnblogs.com/Xieyang-blog/p/8920403.html

时间: 2024-10-11 06:54:22

动态查找与静态查找的区分的相关文章

静态查找表:顺序查找、折半查找、分块查找

引言: 除去各种线性和非线性的数据结构外.另一种在实际应用中大量使用的数据结构--查找表.查找表是由同一类型的数据元素构成的集合. 对查找表常常进行的操作有:1.查找某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性:3.在查找表中插入一个数据元素:4.从查找表中删去某个数据元素.对查找表仅仅作前两种统称为"查找"的操作,则称此类查找表为静态查找表. 若在查找过程中同一时候插入查找表中不存在的数据元素,或者从查找表中删

算法学习之查找算法:静态查找表(1)顺序表查找

引言: 对查找表一般的操作有:1.查询某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性:3.在查找表中插入一个数据元素:4.从查找表中删去某个数据元素. 静态查找表的操作只包括两种:1.查找某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性: 静态查找表又有四种表现形式:顺序表的查找.有序表的查找.静态树的查找.索引顺序表的查找. 静态查找涉及的关键字类型和数据元素类型

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

一.编译型和解释型 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler).如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织.这时编译各个文件时就会生成目标文件(Object  

动态语言,静态类型,强类型定义语言,弱类型定义语言,

1 动态语言和静态语言 通常我们所说的动态语言.静态语言是指动态类型语言和静态类型语言.   1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来.Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言. 2 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在

数据结构 - 静态查找

查找 主要讨论顺序表.有序表.索引表和哈希表查找的各种实现方法,以及相应查找方法在等概率情况下的平均查找长度. 查找表(Search Table):相同类型的数据元素(对象)组成的集合,每个元素通常由若干数据项构成. 关键字(Key,码):数据元素中某个(或几个)数据项的值,它可以标识一个数据元素.若关键字能唯一标识一个数据元素,则关键字称为主关键字(Primary Key) :将能标识若干个数据元素的关键字称为次关键字(Secondary Key) . 查找/检索(Searching):根据给

静态查找表

顺序查找 有序查找 折半查找(binary search) 判定树 折半查找只适用于有序表,且限于顺序存储结构(对线性链表无法有效的进行折半查找) 斐波那契查找:根据斐波那契序列的特点进行分割,假设开始时表中记录个数比某个斐波那契数小1即 n=fu-1,然后将给定值key和 [fu -1 ].key 进行比较,若想等则查找成功: 若key<[fu-1].key 继续自 elem[1]到elem[fu-1 - 1 ]的子表进行查找,否则继续在自elem[fu-1 + 1]至elem[fu - 1]

看数据结构写代码(53) 静态查找表(线性查找,二分查找,斐波那契查找,插值查找)

查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录). 查找表分类:静态查找表和动态查找表. 静态查找表:只查找,而不进行插入,删除. 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素. 静态表的 查找 大致 四种 算法: 线性查找,二分查找,斐波那契查找和插值查找. 其中 在线性查找之前,对表 无要求.对于 其余三种 需要 在查找之前 排序.插值查找 除了 需要 排序,还需要 均匀分布. 下面 给出代码: 线性查

数据结构:静态查找表

数据结构:静态查找表(C语言版) 1.写在前面 ?从查找说起: 在英汉字典中查找某个英文单词的中文解释:在新华字典中查找某个汉字的读音.含义:在对数表.平方根表中查找某个数的对数.平方根:邮递员送信件要按收件人的地址确定位置等等. 从计算机.计算机网络中查找特定的信息,就需要在计算机中存储包含该特定信息的表.查找是许多程序中最消耗时间的一部分.因而,一个好的查找方法会大大提高运行速度. ?先讨论静态查找表: 静态查找表应该是查找中最为简单的.仅仅是在固定的表中对元素的查找,而不涉及修改表中的元素

算法学习之查找算法:静态查找表(2)有序表查找

如果静态查找表是一个有序表,则可以使用折半查找. 折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止.折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等于给定值或者查找区间的大小小于零时(表明查找不成功)为止. 关键字key与表中某一元素array[i]比较,有3种情况: 1.key==array[i],查找成功 2.key > array[i],待查找元素可能的范围是a