- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * Append 1 Hash 假设一组关键自为:07,15,20,31,48,53,64,76,82,99。构造哈希表,表长为13,除留余数法d=11,即:H(key)=key mod 11。 二次探测再散列为: 07 15 20 48 53 64 76 82 99 31 07%11=7 15%11=4 20%11=9 31%11=9(冲突) (9+1)%13=10 48%11=4(冲突) (4+1)%13=5 53%11=9(冲突) (9+1)%13=10(冲突) (9-1)%13=8 64%11=9(冲突) (9+1)%13=10(冲突) (9-1)%13=8(冲突) (9+4)%13=0 76%11=10(冲突)(10+1)%13=11 82%11=5(冲突) (5+1)%13=6 99%11=0(冲突) (0+1)%13=1 0 1 2 3 4 5 6 7 8 9 10 11 12 * * Append 1 Hash 2 链地址法 处理冲突:将所有关键字为同义词的记录存储在同一线性链表中,而哈希表中下标为i的分量存储哈希函数值为i的链表头指针。 0 1 ∧ 2 ∧ 3 ∧ 4 5 6 ∧ 7 8 ∧ 9 10 07 ∧ 20 99 ∧ 82 ∧ 15 48 ∧ 31 53 64 ∧ 76 ∧ * * Append 1 Hash 3 差值解决法(Offset Resolution) 处理的原则以现在的数据地址加上一个固定的差值,当数组地址超出数组大小时,则让数组地址采取循环的方式处理。 0 1 2 3 4 5 6 7 内存为: 23 65 57 8 9 10 余数法,插入63(mod 10),3(余数)+3(固定差值)=6 63 65 57 0 1 2 3 4 5 6 7 23 8 9 10 * * Append 1 Hash 4 分桶杂凑法(Bucket Hashing) 分桶杂凑法所采用的就是数据分为几个大类,称之为桶(Bucket),而每一个大类中可放置相同大类的数据多笔,当经杂凑函数运算后属同一大类的数据,即放在同一大类中,直到这一大类的数据全填满才往下一大类存储数据。 * * Append 1 Hash 数据位置 分桶编号 数据编号 数据内容 Data[0] Bucket0 880335 Alan Data[1] Bucket1 871054 Jeff 881564 Kevin 831572 Poe Data[2] Bucket2 872087 Peter 841098 Bob …… Data[9] Bucket9 849035 Ketty Bucket1已满填入Bucket2 * 第2种情况: p不在字典中:只有在当前文本段形如text(q)text(q)fc(q)且text(p)=text(q)fc(q)时才会发生。相应的压缩文件段是qp。在压缩的过程中,为text(q)fc(q)分配的代码为p。在解压过程中,在用text(q)代替q后,又遇到代码p。然而,此时字典中没有与p对应的文本。因为这种情况只在解压文本段为text(p)text(q)fc(q)时才会发生,因此可以对p解码。当遇到一个没有定义代码文本对的代码p时,p对应的文本为text(q)fc(q),其中q为p前面的代码。 * * 7.5.2 LZW压缩的实现 2.组织字典 字典中每个元素有2个域:code和key。code为整型,而key为字符串。问题是怎么存储字符串? 我们回忆一下编码过程,注意到,每个关键字前缀都可在字典中找到。因为每个字典入口都有一个不同的代码,因此可以用代码代替其关键字前缀。在前面的例子中,关键字aa可以替换为0a,而aaba可以替换为3a。现在字典的形式如下图所示。 为简化对压缩文件的解码,我们可以对每个代码采用相同的位数。 code key 0 a 1 b 2 0a 3 2b 4 1b 5 4b 6 5a 7 3a * * 7.5.2 LZW压缩的实现 我们可假设每个代码为12位长。因此可以最多分配212=4096个代码。由于每个字符为8位,因此关键字可以用长整数(32位)来表示。低8位用来表示关键字中的最后一个字符,后12位用来表示其前缀。 字典本身可以表示为链表散列。若素数D=4099作为散列函数的除数,存储密度就会小于1,因为字典中最多有4096个入口。声明ChainHashTable<element, unsigned long>h(D)足以用来建立字典表。 code key x pa xp p a x 0p p a 0 * * 7.5.2 LZW压缩的实现 3. 输出代码 因为每个代码为12位,每个字符为8位,所以只能输出代码的一部分作为一个字符。先输出代码的前8位,余下4位
您可能关注的文档
最近下载
- 《解析几何》教案--吕林根,许子道.pdf
- 美国加州桥梁抗震caltrans seismic design criteria vlysis.pdf VIP
- 2025云南省临沧市市级单位公开遴选(选调)工作71人笔试参考题库附答案解析.docx VIP
- HSE保障措施优化及实施方案研究.docx VIP
- 2025甘肃省公路交通建设集团武仙公路收费运营人员招聘61人笔试模拟试题及答案解析.docx VIP
- 2025年秋新鲁科版英语四年级上册全册课件.pptx
- 颚式破碎机技术参数.docx VIP
- 2024河南资本集团“方舟”第三批招聘41人笔试参考题库附带答案详解.pdf
- 《时尚配饰设计》课件.ppt VIP
- 高边坡专家论证PPT汇报材料(中建).ppt VIP
文档评论(0)