- 4
- 0
- 约7.52千字
- 约 89页
- 2017-04-21 发布于湖北
- 举报
数据结构第9章精要
9.1 查找的基本概念
9.2 静态查找表——基于线性表的查找法
9.3 动态查找表——基于树表的查找法
9.4 哈希表——计算式查找法;查找和排序是数据处理系统中最重要的两个操作;;;对文件经常进行的操作有:;查找表
由同一类型的数据元素(记录)构成的集合。
查找的定义
给定一个值key,在含有n个记录的表中找出关键字等于key的记录。若找到,则查找成功,返回该记录的信息或该记录在表中的位置;否则查找失败,返回相关的指示信息。;静态查找表(Static Search Table):查询某个特定的元素是否在表中;检索某个特定的元素的各种属性。
动态查找表(Dynamic Search Table):若在查找的同时对表做修改运算(如插入和删除)。;2. 查找操作的性能分析;在表的组织方式中,线性表是最简单的一种。三种在线性表上进行查找的方法:
(1) 顺序查找
(2) 折半查找(二分查找)
(3) 索引顺序表查找(分块查找)。
因为不考虑在查找的同时对表做修改,故上述三种查找操作都是在静态查找表上实现的。;1.顺序查找
顺序查找法的特点:用所给关键字与线性表中各元素的关键字逐个比较,直到成功或失败。存储结构通常为顺序结构,也可为链式结构。;typedef struct{
ElemType *elem;
int length;
}SSTable;;顺序查找的平均查找长度ASL:
假设表长度为n,那么查找到第i个记录时,和给定值已进行过比较的关键字个数为n-i+1,即Ci=n-i+1。又假设查找每个数据元素的概率相等,即Pi=1/n, 则顺序查找算法的平均查找长度为:;2. 折半查找法 (二分法查找法);折半查找;int Search_Bin (SSTable ST, int key)
{
low=1; high=ST.length;
while( low=high ) {
mid = (low+high)/2;
if (ST.elem[mid].key == key) /*查找成功返回*/
return mid;
if (ST.elem[mid].key key)
high=mid-1; /*继续在[low..mid-1]中查找*/
else
low=mid+1; /*继续在[mid+1..high]中查找*/
}
return 0;
};判定树(比较树):二分查找过程可用二叉树来描述,把当前查找区间的中间位置上的记录作为根,左子表和右子表中的记录分别作为根的左子树和右子树。;折半查找成功时的平均查找长度ASL
假定表的长度n=2h-1,则相应判定树必为深度是h的满二叉树,h=log2(n+1)。又假设每个记录的查找概率相等, 则折半查找成功时的平均查找长度为:;折半查找判定树 ;3.索引顺序查找(分块查找)
是一种性能介于顺序查找和二分查找之间的查找方法。
将表[1..n-1]均分为b块,前b-1块中记录个数为s=?n/b?,最后一块即第b块的记录数小于等于s;
每一块中的关键字不一定有序,但前一块中的最
大关键字必须小于后一块中的最小关键字,即要
“分块有序”。
抽取各块中的最大关键字及其起始位置构成一个
索引表ID[b]。由于表R[n]是分块有序的,所以索
引表是一个递增有序表。
; 例如,设有一个线性表,其中包含25个记录,其关键字序列为{8,14,6,9,10,22,34,18,19,31,40,38,54,66, 46,71,78,68,80,85, 100, 94,88,96,87}。假设将25个记录分为5块,每块中有5个记录,该线性表的索引存储结构如下图所示。
;查找索引表的ASL为:LB;块内进行顺序查找的ASL为LW。 ASLbs=LB+LW
b块,每块含s个元素。查找概率相等,则每个索引项的查找概率为1/b,块中每个元素的查找概率为1/s。
若用顺序查找法确定待查元素所在的块,则有 ;静态查找表的三种查找方法的比较
顺序查找对对于表有序、无序均适用;折半查找仅适用于有序表;分块查找要求表分块后“分块有序”。
从表的存储结构上看,顺序查找和分块查找对于表的顺序和链式存储结构均适用,而折半查找只适用于顺序存储结构。
平均查找长度ASL而言,折半最小(log2(n+1)-1),分块次之( ),顺序最大((n+1)/2)。;作业:
9.2
您可能关注的文档
- 数据结构-PPT第三章-栈和队列精要.ppt
- 数据结构-习题集答案-(C语言版严蔚敏)精要.doc
- 数据挖掘概论精要.ppt
- 数据结构 第二章 线性表精要.pptx
- 数据结构-第1章绪论精要.ppt
- 数据结构-第2章线性表精要.ppt
- 数据结构-第4章 串-1精要.ppt
- 数据结构-第3章栈和队列精要.ppt
- 数据结构820记忆性题总结(By Dawnon)精要.docx
- 数据结构5精要.docx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)