1 / 92
文档名称:

chapter4 数据集合上的搜索(Searching)算法.ppt

格式:ppt   页数:92
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

chapter4 数据集合上的搜索(Searching)算法.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

chapter4 数据集合上的搜索(Searching)算法.ppt

文档介绍

文档介绍:计算机算法 ——设计与分析导论
南开大学计算机科学与技术系
刘璟
1
Chapter 4. 数据集合上的搜索(Searching)算法
动态数据集(Dynamic Set)与抽象数据类型(ADT)
二叉搜索树(Binary Search Trees)
随机二叉搜索树(Randomly Built Binary Search Tree)
红黑树(Red-Black Tree)
2-3-4树
Hashing技术
2
动态数据集(Dynamic Set)与抽象数据类型(ADT)
静态数据集(Static Set)中的数据是固定不变的。
动态数据集(Dynamic Set)则是由不断变动的同类型数据元素组成的数据集合。
动态数据集(Dynamic Set)可以表示为一个数据元素的数组:
class DynamicSet {
int setSize;
Object[arraySize] elements;
...
} //Object为数据元素的类型,setSize为当前集合中的元素个数
3
用数组表示集合操作方便,但当集合中的元素个数不断增加时,数组的长度必须扩大。一般采用空间倍增(array doubling)技术,即另外申请一个加倍长度的新数组,把集合中的数据传送过来,取代原有的空间。
其过程为:
arrayDouble(set) {
newSize = 2*arraySize ;
newElements = new Object(newSize) ;
Transfer all elements from the to the newElement;
= newElements ;
= newSize ;
}
更为灵活的存储形式是利用指针和链表(例如线性链表和树结构),这种存储形式在搜索算法中经常用到。
4
搜索问题:在集合中检索出其关键字域的值等于给定值的数据元素。
已知:动态数据集类型DynamicSet的一个实例set和值x。
求:集合set中一个元素Object element, = x。
数据集合上的操作(operation)可以分为两类:
查询(queries)操作:对数据集不做任何变动,仅仅返回有关集合的某些信息;
修改(modifying operations)操作:要对数据集合的某些域进行改动。
一些典型的操作:
Search(S,k):搜索,一个查询操作。对于给定的数据集合S和一个关键字值k,返回S中一个元素(element)的指针x,使得x->key=k。当S中没有符合条件的元素时,返回的指针为空(NULL)。
5
Insert(S,x):插入,一个修改操作。把由x指向的数据元素加入到集合S中,一般假定在x指向的数据元中,与集合运算相关的所有分量(域)都已经初始化。
Delete(S,x):删除,一个修改操作。给定指向集合S中一个元素的指针x,将此元素从S中删除。
Minimum(S):求最小元,一个查询操作。若集合S中所有数据元素的关键字值为一全序集,则返回具有最小关键字值的数据元素的指针。
Maximum(S):求最大元,一个查询操作。返回具有最大关键字值的数据元素的指针。
Deletemin(S):删除最小元,一个修改操作。它相当于Minimum(S)和Delete(S,x)的联合,
即:Delete(S,Minimum(S))。
6
essor(S,x):求后继数据元,一个查询操作。若S中的数据元素按关键字值从小到大排列,x是指向S中某一数据元素的指针,则返回x所指向的数据元素的下一个数据元素的指针。若x指向最后一个数据元素,则返回NULL。
Predecessor(S,x):求前导数据元,一个查询操作。返回x所指向的数据元素的前一个数据元素的指针。若x指向第一个数据元素,则返回NULL。
搜索算法(及相关操作算法)的设计实际上是实现适合各种不同应用需要的ADT,例如:
字典(Dictionary)作为抽象数据类型,可以分为两类:
·静态字典:(静态数据集S,Search);
·动态字典:(动态数据集S,Search,Insert,Delete)。
优先队列(Priority Queue):(动态数据集S,Insert,Deletemin)。
7
二叉搜索树
二叉搜索树又称为二元字典树,是一种最常用的动态数据集的数据结构,可以用于实现字典和优先队列等ADT。
二叉搜索树(Binary Search Trees)
BST的

最近更新

2024年铁岭卫生职业学院单招职业适应性考试模.. 39页

2024年长春健康职业学院单招职业技能测试题库.. 40页

2024年长江工程职业技术学院单招综合素质考试.. 39页

2024年长沙商贸旅游职业技术学院单招职业技能.. 38页

2024年长沙航空职业技术学院单招职业技能测试.. 39页

2024年闽南理工学院单招职业适应性测试模拟测.. 41页

2024年陕西电子信息职业技术学院单招职业倾向.. 40页

2024年陕西省渭南市单招职业适应性考试题库必.. 39页

2024年陕西警官职业学院单招职业技能测试模拟.. 41页

2024年集美大学诚毅学院单招职业倾向性测试题.. 38页

2024年青海建筑职业技术学院单招职业技能考试.. 41页

2024年青海省西宁市单招职业倾向性测试模拟测.. 38页

2024年鹤岗师范高等专科学校单招职业倾向性测.. 42页

2024年黎明职业大学单招职业技能考试题库最新.. 39页

2024年黑龙江林业职业技术学院单招职业倾向性.. 40页

2024年黑龙江省大庆市单招职业倾向性测试模拟.. 41页

2025年三峡电力职业学院单招职业技能测试模拟.. 41页

2025年上海外国语大学贤达经济人文学院单招职.. 41页

2025年上海戏剧学院单招职业倾向性测试题库推.. 41页

2025年乌兰察布职业学院单招职业倾向性考试模.. 39页

2025年云南交通职业技术学院单招职业技能考试.. 40页

2025年云南经贸外事职业学院单招职业倾向性考.. 39页

小学数学六年级下册《鸽巢问题》作业设计 9页

【人教版英语字帖】七年级下册单词表衡水体字.. 42页

国开《建筑力学》期末机考答案 15页

农村人才流失国外研究报告 2页

住院患者自带药品使用管理规定通知 3页

栏杆计算书 2页

黄酒评分、扣分标准表(共1页) 1页

GA T 1585-2019《法庭科学 尸体检验摄像技术规.. 8页