关注
哈夫曼编码是一种用于数据压缩的编码方式,它通过构建哈夫曼树来实现数据的高效压缩。哈夫曼树的构建过程如下:
1. 将每个字符的出现频率作为权重,构建一个最小堆。
2. 从最小堆中取出两个权重最小的节点,将它们的权重相加,并将和作为新节点的权重,然后将新节点放回最小堆中。
3. 重复步骤2,直到最小堆中只剩下一个节点。这个节点就是哈夫曼树的根节点。
根据题目中的字符频率,我们可以构建一个哈夫曼树。树的结构如下:
```
a(7)
/ | \
b(2) c(4) d(8)
/ \
e(3) f(1)
```
每个叶子结点的哈夫曼编码可以通过从根节点到该叶子结点的路径上的字符(包括根节点和叶子结点本身)来构建。在这个例子中,每个字符的哈夫曼编码如下:
- a: 100
- b: 110
- c: 101
- d: 00
- e: 01
- f: 000
带权路径长度是所有叶子结点的哈夫曼编码长度与对应字符频率的乘积之和。在这个例子中,带权路径长度为:
```
(100 * 7) + (110 * 2) + (101 * 4) + (00 * 8) + (01 * 3) + (000 * 1) = 770
```
哈夫曼编码与其他编码的区别在于,哈夫曼编码是一种前缀编码,即每个字符的编码都不是其他字符编码的前缀。这样可以避免在解码过程中产生歧义。
使用已构造的哈夫曼编码对电文“aabdddccef”进行编码,得到编码后的字符串为:
```
***
查看原帖
点赞 评论
相关推荐
不管什么都不想跳动了:本人美团百度快手都待过,建议肯定是直接留快手多一点产出后转正or直接冲字节腾讯暑期吧。一是快手从福利到基建都吊打另外两家。美团现在这个业务比较惨,本来毛利就很低,亏损严重,今年很可能要优化人力降低成本,去了别说日常,就算暑期后面都很可能被优化。百度其实实习生权限挺高的,可以接触到一些含金量高的项目,但是现在的风评不如之前了,薪资也不高。二是转正概率和薪资是跟产出挂钩的,你都在手子已经积累产出了,去其他家日常实习产出都是从0开始,肯定不可能有你在手子转正可能性大啊,现在日常压根没必要去,而且我有两个师弟都是在快手日常转正的,不用太担心,安心留在手子一边多做一点产出然后一边冲字节腾讯暑期,字节腾讯今年实习岗位非常多的,不如好好把握这个,加油。
查看18道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如何一边实习一边找下家? #
10110次浏览 92人参与
# 你的mentor是什么样的人? #
56381次浏览 769人参与
# 春招/暑实第一面是哪家? #
10629次浏览 150人参与
# 重来一次,你会对开始求职的自己说 #
37880次浏览 401人参与
# 跟HR说什么能被秒回? #
4362次浏览 85人参与
# 你认为工作的意义是什么 #
264730次浏览 1522人参与
# 面试官最爱问的 AI 问题是...... #
7527次浏览 278人参与
# 你今年的保底offer是哪家 #
175988次浏览 730人参与
# 哪些瞬间让你真切感受到了工作的乐趣 #
26873次浏览 111人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
1019次浏览 52人参与
# 你收到了哪些公司的笔试? #
9718次浏览 51人参与
# 你的嫡系AI是哪个? #
1809次浏览 53人参与
# 现在入门AI应该走哪些方向? #
1714次浏览 44人参与
# 你现在的工作,是“成长”还是“消耗”? #
5705次浏览 100人参与
# 为什么国企只招应届生 #
244106次浏览 1306人参与
# 烟草笔面经互助 #
27777次浏览 202人参与
# 快手求职进展汇总 #
741753次浏览 7119人参与
# 27届实习投递记录 #
2694次浏览 62人参与
# 你怎么评价今年的春招? #
155711次浏览 1415人参与
# 华为海思工作体验 #
44446次浏览 157人参与
