排序树与索引结构.ppt
《排序树与索引结构.ppt》由会员分享,可在线阅读,更多相关《排序树与索引结构.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Hu JunfengHu JunfengHu JunfengHu Junfeng排序树与文件索引结构排序树与文件索引结构2010/05/06Hu JunfengHu JunfengHu JunfengHu Junfeng本讲主要内容:本讲主要内容:Hash表(续)Web Crawler正则表达式倒排表与倒排索引排序树与AVL树文件的索引结构2Hu JunfengHu JunfengHu JunfengHu Junfeng字典的基本概念字典的基本概念字典字典是一个由数据记录(record)构成的顺序表,其中记录中有一个特殊的字段,称为关键码。关键码。每条记录都有唯一的不重复唯一的不重复的关键码取
2、值。字典中的元素之间能够根据其关键码进行比较与排序,对字典元素的插入、删除和检索等操作一般也以关键码为依据进行。字典可以看成是由关键码值k到数据记录r的一个对应。唯一的关键码取值可以唯一对应一条数据记录。3Hu JunfengHu JunfengHu JunfengHu Junfeng根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据条目。顺序检索、二分检索。衡量一个字典检索算法效率的主要标准是检索过程中对关键码的平均比较次数:字典的检索(字典的检索(searching)4Hu JunfengHu JunfengHu JunfengHu JunfengDictionary表示抽象数据
3、类型字典,DicElement 表示字典元素类型,KeyType 表示元素中关键码的类型,Position 表示字典中元素的位置。Dictionary的的抽象数据类型抽象数据类型ADT DictionaryoperationsDictionary createEmptyDictionary(void)/创建一个空字典。int search(Dictionary dic,KeyType key,Position p)/在字典dic中检索关键码为key的记录的位置p。int insert(Dictionary dic,DicElement ele)/在字典dic中插入记录ele。*int dele
4、te(Dictionary dic,KeyType key)/在字典dic中删除关键码为key的记录。*end ADT Dictionary5Hu JunfengHu JunfengHu JunfengHu Junfeng字典的顺序检索字典的顺序检索字典中的元素可以是无序的,但为了实现的方便,可以把字典中的元素按关键码值排序。从字典的一端开始顺序扫描,将字典中元素的关键码和给定值比较:如果相等,则检索成功;当扫描结束时,还未找到关键码等于给定值的元素,则检索失败。顺序检索算法适用于非排序顺序存储或非关键码字段检索顺序检索的算法复杂度为O(n),平均比较次数为n/2。6Hu JunfengHu
5、JunfengHu JunfengHu Junfeng字典的二分查找字典的二分查找二分查找(binary search)要求:查找表为有序表,即表中 结点按关键字有序排列,并且采用顺序存储结构。基本思想:1.确定搜索区间的中点位置:2.然后将待查的key值与rangemid.key比较:若相等,则查找成功并返回此位置,否则确定新的查找区间,继续二分查找.7Hu JunfengHu JunfengHu JunfengHu Junfeng二分查找算法(非递归)二分查找算法(非递归)8Hu JunfengHu JunfengHu JunfengHu Junfeng二分法检索每经过一次比较就将检索范围
6、缩小一半,第i次比较可能涉及的元素=2i-1。二分法检索的最大检索长度为:log2(n+1)算法复杂度:log2(n)二分查找性能分析二分查找性能分析9Hu JunfengHu JunfengHu JunfengHu JunfengHash的思想的思想:一种高效的词典结构:一种高效的词典结构将数据集合中的所有对象都唯一对应到一个关键值,然后通过关键值映射到一个表中(哈希表)进行存放,之后可以根据关键值实现迅速查找。其他实现方案:插入速度 检索速度顺序表链表10Hu JunfengHu JunfengHu JunfengHu JunfengHash表的问题:表的问题:空间冗余,多对一(碰撞)空间
7、冗余,多对一(碰撞)确定性问题:关键码分布已知。编码-解码非确定性问题:关键码分布未知且理论上编码空间巨大。(vs 实际问题规模)11Hu JunfengHu JunfengHu JunfengHu Junfeng12Hu JunfengHu JunfengHu JunfengHu Junfeng样例数据:样例数据:33/40关键码?关键码?Value?13Hu JunfengHu JunfengHu JunfengHu Junfeng文件直接存取(文件直接存取(Random File Access)fseek(fileName,offset,origin)file streamFile*fp
8、;14Hu JunfengHu JunfengHu JunfengHu Junfeng文件直接存取函数文件直接存取函数rewind()resets the current position to the start of the filerewind(inFile)fseek()allows the programmer to move to any position in the filefseek(fileName,offset,origin)Origin:SEEK_SET,SEEK_CUR,and SEEK_ENDftell()returns the offset value of th
9、e next character that will be read or writtenftell(inFile);15Hu JunfengHu JunfengHu JunfengHu Junfeng16Hu JunfengHu JunfengHu JunfengHu JunfengHash函数设计:函数设计:观察法:17Hu JunfengHu JunfengHu JunfengHu Junfeng18Hu JunfengHu JunfengHu JunfengHu Junfeng19Hu JunfengHu JunfengHu JunfengHu Junfeng20Hu JunfengH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 索引 结构
限制150内