查找的基本概念
列表
由同一类型的数据(或记录)元素构成的集合,可由任意数据结构实现。
关键字
数据元素的某个数据项的值,它可以表示列表中的一个或一组数据元素。如果一个关键字可以唯一标示列表中的一个元素,则称其为主关键字,否则为次关键字。当数据元素仅有一个数据项时,数据元素的值就是关键字。
查找
根据给定的关键字的值,在列表中确定一个其关键字与给定值相同的数据元素,并返回该元素在列表中的位置。若找不到此时应返回空地址和失败信息。
对于表的查找有两种形式,静态查找和动态查找。静态查找是指仅在列表中进行查找。动态查找是指在查找的同时,插入找不到的元素或删除已查到的元素。
平均查找长度
为确定数据元素在列表中的位置,须和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。
例如:对长度为n的列表,查找成功时的平局查找长度为
ASL=P1C1+P2C2+...+PnCn=∑ni=1PiCi
A
S
L
=
P
1
C
1
+
P
2
C
2
+
.
.
.
+
P
n
C
n
=
∑
i
=
1
n
P
i
C
i
其中
Pi
P
i
是查找到
i
i
元素的概率,是查找到
i
i
<script type="math/tex" id="MathJax-Element-5">i</script>元素时比较的次数。
查找的基本分类
-
比较查找法
- 基于线性表的查找法
- 基于树查找法 计算式查找法
- 哈希查找法