收藏 分享(赏)

排序树与文件索引结构.ppt

上传人:hskm5268 文档编号:8178366 上传时间:2019-06-13 格式:PPT 页数:49 大小:1.21MB
下载 相关 举报
排序树与文件索引结构.ppt_第1页
第1页 / 共49页
排序树与文件索引结构.ppt_第2页
第2页 / 共49页
排序树与文件索引结构.ppt_第3页
第3页 / 共49页
排序树与文件索引结构.ppt_第4页
第4页 / 共49页
排序树与文件索引结构.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、排序树与文件索引结构,2010/05/06,2,本讲主要内容:,Hash表(续) Web Crawler 正则表达式 倒排表与倒排索引 排序树与AVL树 文件的索引结构,3,字典的基本概念,字典是一个由数据记录(record)构成的顺序表,其中记录中有一个特殊的字段,称为关键码。每条记录都有唯一的不重复的关键码取值。 字典中的元素之间能够根据其关键码进行比较与排序,对字典元素的插入、删除和检索等操作一般也以关键码为依据进行。 字典可以看成是由关键码值k到数据记录r的一个对应。唯一的关键码取值可以唯一对应一条数据记录。,4,根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据条目。 顺序

2、检索、二分检索。 衡量一个字典检索算法效率的主要标准是检索过程中对关键码的平均比较次数:,字典的检索(searching),5,Dictionary表示抽象数据类型字典, DicElement 表示字典元素类型, KeyType 表示元素中关键码的类型, Position 表示字典中元素的位置。,Dictionary的抽象数据类型,ADT Dictionary operations Dictionary createEmptyDictionary ( void )/创建一个空字典。 int search(Dictionary dic, KeyType key, Position p)/在字典d

3、ic中检索关键码为key的记录的位置p。 int insert(Dictionary dic, DicElement ele)/在字典dic中插入记录ele。* int delete(Dictionary dic, KeyType key)/在字典dic中删除关键码为key的记录。 * end ADT Dictionary,6,字典的顺序检索,字典中的元素可以是无序的,但为了实现的方便,可以把字典中的元素按关键码值排序。 从字典的一端开始顺序扫描,将字典中元素的关键码和给定值比较: 如果相等,则检索成功; 当扫描结束时,还未找到关键码等于给定值的元素,则检索失败。 顺序检索算法适用于非排序顺序

4、存储或非关键码字段检索 顺序检索的算法复杂度为O(n),平均比较次数为n/2。,7,字典的二分查找,二分查找(binary search) 要求: 查找表为有序表,即表中结点按关键字有序排列,并且采用顺序存储结构。 基本思想:确定搜索区间的中点位置:然后将待查的key值与rangemid.key比较:若相等,则查找成功并返回此位置,否则确定新的查找区间,继续二分查找.,8,二分查找算法(非递归),9,二分法检索每经过一次比较就将检索范围缩小一半,第i次比较可能涉及的元素=2i -1。 二分法检索的最大检索长度为:log2(n+1) 算法复杂度:log2(n),二分查找性能分析,10,Hash的

5、思想:一种高效的词典结构,将数据集合中的所有对象都唯一对应到一个关键值,然后通过关键值映射到一个表中(哈希表)进行存放,之后可以根据关键值实现迅速查找。其他实现方案: 插入速度 检索速度 顺序表 链表,11,Hash表的问题:空间冗余,多对一(碰撞),确定性问题:关键码分布已知。 编码-解码 非确定性问题:关键码分布未知且理论上编码空间巨大。(vs 实际问题规模),12,13,样例数据:33/40,关键码?Value?,14,文件直接存取(Random File Access),fseek(fileName, offset, origin),file stream,File* fp;,15,文

6、件直接存取函数,rewind() resets the current position to the start of the file rewind(inFile) fseek() allows the programmer to move to any position in the file fseek(fileName, offset, origin) Origin: SEEK_SET, SEEK_CUR, and SEEK_END ftell() returns the offset value of the next character that will be read or

7、written ftell(inFile);,16,17,Hash函数设计:,观察法:,18,19,20,21,22,如何处理文件中数据记录的删除?,23,碰撞及解决方案:,24,00820060 刘艳敏,25,对hash函数的疑问:,以下是我对hash函数的理解。首先要尽可能的不发生碰撞,同时也要尽可能避免开很大的空间,所以我们要找一个很巧妙的函数,对吧? 那么对于一个已知的输入数据,我们可以分析它的特点,然后制定相应的函数。比如作业题1中给出的那个解决方案,作者考虑到倒数第三位和第一位很特殊,可以直接返回这个两位数。但是在加入了两组捣乱的数据后,这个方案明显出了问题。 但我觉得这个因果关系

8、有点颠倒了,如果我们已知了数据,hash函数甚至可以直接用从小到大的对应的次序,这样根本不要费尽心机的找一个函数出来。所以我觉得,一个好的函数,是不是应该在数据还未知的情况下,就能有一定的把握,使碰撞次数很少。 如果这样想的话,就要要求这个函数尽可能散,随机的把数据投射到另一个集合,但这样又似乎没法控制hash表的规模。而且保证随机(或者说比较均匀的)也挺麻烦,就像课上说的,平方的话会使一些平方数明显增多,等等。 然后我就困惑了,像这次的这个作业题,到底有没有一个比较厉害的函数,能够应对几乎所有的捣乱数据?,26,一般思路:,号码类 字符串类,27,Hash的用途,词典索引 用来判重和统计数目

9、,28,字符串处理:,29,sscanf(),30,sscanf(),31,sscanf(),32,sscanf(),33,sscanf(),34,网络爬虫:,网络爬虫是什么? 怎样爬? 整体框架 核心算法 算法改进,35,怎样搜集?,网页为节点 网页中的HyperLink为有向边 Crawl = 图遍历, right?,36,链接是哪些?,37,Refer to HTML 4.01 Specification,38,GET Method in HTTP,Refer to RFC 2616,HTTP Made Really Easy,39,Agenda,网络爬虫是什么? 怎样爬? 预备知识 整

10、体框架 核心算法 算法改进 Distributed Crawling,40,网络爬虫是什么? 系统框图,41,42,43,44,还存在什么问题呢?,The real world is not perfect 镜像与重复网页 mirrors and duplications url/html syntax error server traps server complains legal issues system crash, power brake,45,URL不唯一性,不同url指向的同一个网页 IP地址和域名之间的多对多关系 大规模网站用于负载平衡的技术:内容镜像 “virtual ho

11、sting”和“Proxy pass”:不同的主机名映射到同一个IP地址,发布多个逻辑网站的需要(Apache支持) 动态网页的参数 Session id 上一页/下一页,46,“同义”地址,域名与IP对应存在4种情况: 一对一,一对多,多对一,多对多。一对一不会造成重复搜集, 后三种情况都有可能造成重复搜集。 可能是虚拟主机,多个域名共一个IP,内容不同 , - 162.105.129.12 可能是DNS轮转 - 202.112.8.2, 202.112.8.3 - 202.112.8.3 可能是一个站点有多个域名对应 和等价,47,server traps,防止系统异常 病态HT

12、ML文件 例如,有的网页含有68 kB null字符 误导Crawler的网站 用CGI程序产生无限个网页 用软目录创建的很深的路径 HTTP服务器中的路径重映射特征,48,自动提取所关注领域的网页,我觉得可以由用户提供一个关键词名单,每个关键词有一定分值,网页文本中若出现此关键词就得到相应的分数;总分高的网页优先显示。 问题: 关键词名单如何确定? 关键词分值如何确定? 如何规避文本内容与所包含的词不一致的问题? 预习:网站上 “倒排表与向量空间模型” 内容。,49,本次作业:,所有同学继续完上一次内容,9号前务必要提交。 尽可能这次把布置的选作题也都作了。可以考虑建一个大的字符串的数组,value值放数组的下标(推荐),也可以尝试用课上讲过的文件直接存取技术存放URL的文件偏移量来进行URL的比对。 (提交为第二题,依然assignment0429目录) 选作题哦: 提取网页(pku主页)中所有超链接显示的文字内容。例如前面例子中:“北大故事”的提取。 10号前完成的请发给,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报