- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.4 哈夫曼编码 存储空间比较 假设各字符出现次数:A 30次,B 25次, C 20次,D 10次,E 10次,F 5次 存储空间(定长编码) 9.4 哈夫曼编码 存储空间比较 假设各字符出现次数:A 30次,B 25次, C 20次,D 10次,E 10次,F 5次 存储空间(变长编码) 9.4 哈夫曼编码 哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。 考虑将字符和二叉树的叶子联系起来形成前缀码 关键字位于叶子节点,且关键字具有出现频率 使对这些关键字编码后的平均长度最小 如何贪心? 让概率小的先编码(先编码的,码长长) 9.4 哈夫曼编码 编码过程: 初始化n个字符单节点的树,每个字符具有概率,记为权重 重复下面的步骤直到剩下一棵单独的树。 找到两个树权重最小,把他们作为新树中的左右子树。并把其权重之和作为新的权重记录在新树的根中。 左子树边标0,右子树边标1,从根节点到叶子节点的路径就是哈夫曼编码 9.4 哈夫曼编码 已知字母A、B、C、D、E、F出现的频率如下:A——30%,B——25%,C——20% D——10%,E——10%,F—— 5% A (30) B (25) C (20) D (10) E (10) F (5) 15 25 45 55 100 1 1 0 0 0 0 0 1 1 1 1110 E 1111 F 110 D 10 C 01 B 00 A 编码 字符 100 E 101 F 011 D 010 C 001 B 000 A 编码 字符 定长编码 3*30+3*25+3*20+3*10+3*10+3*5=300 bit 1110 E 1111 F 110 D 10 C 01 B 00 A 编码 字符 变长编码 2*30+2*25+2*20+3*10+4*10+4*5=240 bit 贪心法要素总结(参考) (1)明确目标函数和约束条件 (2)制定部分解结构。 确定如何将待解问题分解成若干步骤 Prim算法:最小生成树的子树 (3)确定贪心策略 扩大部分解的方法,一般涉及极值选择 (4)确定候选集 明确贪心的选择范围 (5)调整候选集 (6)正确性证明 * * * 第九章 贪心法 什么是贪心? 逐步给出解的各部分, 在每一步“贪婪地” 选择最好的部分解,但不顾及这样选择对整体的影响, 因此一般地得到的不是最好的解。 每一步要满足的条件 可行 局部最优 不可取消 第九章 贪心法 9.1 Prim算法 9.2 kruskal(克鲁斯卡尔)算法 9.3 Dijkstra(迪科斯彻)算法 9.4 哈夫曼树 9.1 Prim算法 设G =(V,E)是无向连通带权图,E中每条边(v,w)的权重为c[v][w]。 如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。 在G的所有生成树中,所有边的权重总和最小的生成树称为G的最小生成树。 最小生成树 所有顶点连通 没有回路 边的权重总和最小 9.1 Prim算法 图的最小生成树在实际中有广泛应用。 例如,在设计通信网络时,用图的顶点表示城市,用边(v,w)的权c[v][w]表示建立城市v和城市w之间的通信线路所需的费用,则最小生成树就给出了建立通信网络的最经济的方案。 9.1 Prim算法-基本思想 设G=(V,E)是连通带权图,V={1,2,…,n}。如何用贪心呢? 给定一个起始点,如何贪心? 选择与这个起始点最近的点加入 有了n个点,后续如何贪心? 选择与这n个点距离最小的点加入 9.1 Prim算法-基本思想 首先置S={1} 然后,只要S是V的真子集,就作如下的贪心选择: 选取满足条件i∈S,j∈V-S,且c[i][j]最小的边 将顶点j添加到S中。 这个过程一直进行到S=V时为止。 在这个过程中选取到的所有边恰好构成G的一棵最小生成树。 9.1 Prim算法 Prim(V,E) Vt={v0} Et=Φ for i=1 to |V|-1 do 在v,u(v∈Vt, u∈ V-Vt)中求权重最小的边e*=v*,u* Vt = Vt∪{ u*} Et = Et∪{ e*} Return Et 3 1 6 4 4 5 8 2 6 f e d b a c 5 9.1 Prim算法 树中顶点: a(-,-) 余下顶点: b(a,3), c(-,∞), d(-,∞), e(a,6), f(a,5) 3 1 6 4 4 5 8 2 6 f e d b a c 5 9.1 Prim算法 树中顶点: b(a,3) 余下顶点: c(b,1), d(-,∞), e(a,6), f(b,4) 3 1 6 4 4 5 8 2 6 f e d b a c 5 上一步余下顶点: b(a
您可能关注的文档
最近下载
- 浅谈略读课文教学--专题讲座.docx VIP
- 绿色金融复习测试卷.doc
- 2025届高考语文复习:议论文主体段落“五层结构法”写作指导 课件(共47张PPT)(含音频+视频).pptx VIP
- 电子版个人简历模板个人简历模板空白表格.docx VIP
- 摩登家庭台词剧本第一季第一集中英双语左右对照.pdf VIP
- 1:50万新 疆地质图[46幅图].pdf VIP
- SL101-2014 水工钢闸门和启闭机安全检测技术规程.docx VIP
- HK-328W型pH分析仪说明书V3.0.pdf VIP
- 001 三氯甲烷化学品安全技术说明书.doc VIP
- 高考英语语法词汇专项突破:09状语从句专项巩固训练+答案+解析[001].docx VIP
原创力文档


文档评论(0)