版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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) /在字
3、典dic中检索关键码为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),二分查找性能分析,1
5、0,Hash的思想:一种高效的词典结构,将数据集合中的所有对象都唯一对应到一个关键值,然后通过关键值映射到一个表中(哈希表)进行存放,之后可以根据关键值实现迅速查找。 其他实现方案: 插入速度 检索速度 顺序表 链表,11,Hash表的问题:空间冗余,多对一(碰撞),确定性问题:关键码分布已知。 编码-解码 非确定性问题:关键码分布未知且理论上编码空间巨大。(vs 实际问题规模),12,13,样例数据:33/40,关键码?Value?,14,文件直接存取(Random File Access),fseek(fileName, offset, origin),file stream,File*
6、fp;,15,文件直接存取函数,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
7、read or 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地址和域名之间的多对多关系 大规模网站用于负载平衡的技术:内容
11、镜像 “virtual hosting”和“Proxy pass”:不同的主机名映射到同一个IP地址,发布多个逻辑网站的需要(Apache支持) 动态网页的参数 Session id 上一页/下一页,46,“同义”地址,域名与IP对应存在4种情况: 一对一,一对多,多对一,多对多。一对一不会造成重复搜集, 后三种情况都有可能造成重复搜集。 可能是虚拟主机,多个域名共一个IP,内容不同 , - 2 可能是DNS轮转 - , - 可能是一个站点有多个域名对应 和等价,47,server traps,防止系统异常 病态HTML文件 例如,有的网页含有68 kB null字符 误导Crawler的网站 用CGI程序产生无限个网页 用软目录创建的很深的路径 HTTP服务器中的路径重映射特征,48,自动提取所关注领域的网页,我觉得可以由用户提供一个关键词名单,每个关键词有一定分值,网页文本中若出现此关键词就得到相应的分数;总分高的网页优先显示。 问题: 关键词名单如何确定? 关键词分值如何确定? 如何规避文本内容与所包含的词不一致的问题? 预习:网站上 “倒排表与向量空间模型” 内容。,49,本次作业:,所有同学继续完上一次内容,9号前务必
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盆底肌障碍性疾病康复
- 腹腔镜前列腺癌护理
- 保育员户外活动保育护理
- 第26讲 晶体结构与性质
- 全民消防安全宣传方案
- 公务员面试避坑模板
- 最终移交确认安全技术交底
- 2026年中级经济师资格考试(金融专业知识和实务)经典试题及答案
- 多发骨折,失血性休克应急演练 脚本
- 辅助阳极安装施工工艺
- 2026秋新版苏教版小学数学四年级上册教学计划含进度表
- 小学2026秋季学期学校工作计划
- 2026年退役军人事务员职业技能理论考试复习题库及答案
- 2026宁夏医科大学总医院自主招聘事业单位工作人员87人考试参考题库及答案详解
- 机械加工车间智能化技改实施方案
- 金川集团招聘真题(含完整答案+考情说明)
- 2026新教材人教版(2024)七年级上册英语全册教案
- 环境保护概论(上篇共上下2篇)
- 2025年种子检验员职业资格考试真题及答案
- 2026年河北省单招考试一类《文化素质数学》真题附答案详解
- 2026年3月青少年软件编程(图形化)等级考试一级真题(含答案和解析)
评论
0/150
提交评论