前缀码详解

article/2025/9/15 11:32:54

文章目录

    • 提出问题
    • 作出假设
    • 进一步假设
    • 进一步思考
    • 进一步探索 (二叉树编码字符)
    • 拓展(二叉树解码位串)

提出问题

计算机常用 位串(一串0和1组成的字符串) 来表示各种字符。如果想要用0和1表示26个英文字母,最少需要几位长度的位串呢?

作出假设

相信不少人想到的都是五位吧?因为 2⁵ = 32 > 26。这样我们每次只要取五位位串,便能表示清楚的出每个英文字母。
但还有没有更优的解法呢?如果表示英文字母的位串长度可以更少的话,在传输信息的过程中,就可以节省更多的存储空间,从而缩短传输数据的时间。
在这里插入图片描述

进一步假设

上面的方法是使用相同长度的位串表示英文字母,那么我们能不能用不同位数的位串表示不同的英文字母呢?

假设我们将 e编码成0,a编码成1,t编码成01,那么在用位串表示某些单词的时候,就会出现 “一串多义”的情况。比如 位串 0101 就对应着以下四种情况:
在这里插入图片描述

进一步思考

上面的例子似乎让我们想要用不同位数的位串表示不同英文字符的想法落空,但这种方式真的就不行吗?

我们把上面的 e,a,t 重新编码一下,这一次,我们把 e 编码成 0,a 编码成 10,t 编码成 11。我们接下来再来看看上面eaea,tt,eat,tea的位串。在这里插入图片描述
我们随便抽取了几个例子,事实证明,按照这种方式编码,任何英文字母的组合,是不会出现重复的位串的。具有这种 没有位串对应着多种情况的序列 的性质的编码被称为前缀码。

如何才能保证 没有位串对应着多种情况的序列 的情况呢?我们只要令一个字母的位串永远不出现在另一个字母位串的开头部分即可。

进一步探索 (二叉树编码字符)

只是靠想,可能还是很难对英文字母进行编码,那我们应该怎么做呢?

通过我们常见的二叉树即可。
在这里插入图片描述上图便是我们 e,a,t 这组前缀码的二叉树表示,其中字符是树种树叶的标记。

树的边也被标记,使得通向左子的边标记为0,通向右子的边标记为1。

我们可以用这种方式来编码一个字符的位串是在从根到以这个字符作为标记的树叶的唯一通路上标记的序列。

  • 举个例子
    下面的编码:
    • 0 → e
    • 10 → a
    • 110 → t
    • 1110 → n
    • 1111 → s

在这里插入图片描述

使用这种方式,我们就能找到一组前缀码了,就能对26个英文字母进行编码。

通常,为了节省空间,我们把常用的编码放在离树的根部最近的地方(位串长度最少),这样能节省更多的空间。比如 e 是 26 个英文字母所组成的单词种最常用的字母,我们就把 e 放在距离树根最近的地方,编码为 0。

拓展(二叉树解码位串)

二叉树解码位串,就是把上述编码的过程反过来即可。

举个例子:利用上述编码,解码 11111011100

在这里插入图片描述
所以最终解码的结果是 sane


http://chatgpt.dhexx.cn/article/RkL4cO4E.shtml

相关文章

前缀和(一)

本文首发自本人微信公众号:今天你A了吗。每日算法讲解,面试题,冲刺BAT大厂。微信扫码关注吧: 前缀和(一)仅涉及一维前缀和。前缀和(二)涉及二维前缀和。 一、介绍:什么是…

115://开头的链接怎么转磁力?

115浏览器是一款体积小巧、启动速度快的多功能网页浏览器,最近有些用户就来咨询小编115://开头的链接要如何转磁力?下面小编就来给大家详细分析一下这个问题。 115://开头的链接转磁力方法介绍 1、首先打开 115 浏览器,然后在其右上角的&…

磁力链接文件服务器,什么是磁力链接(BT、磁力链这些词语是什么意思?)

“知其然知其所以然”。我们经常在下载资料的时候能看到BT、磁力链等词语,百思特网这些词语到底是什么意思呢? 下载都会用,但是你了解吗? BT下载 传统的下载模式是每个客户端从服务器拷贝文件,跟校园内常用的FTP一样。因为服务器宽带是一定的,所以下载的人越多下载速度会…

磁力链前缀

magnet:?xturn:btih:

磁力链接 结构解析 分享

磁力链接由一组参数组成,参数间的顺序没有讲究,其格式与在HTTP链接末尾的查询字符串相同。最常见的参数是"xt",是"exact topic"的缩写,通常是一个特定文件的内容散列函数值形成的URN,例如&#xf…

2021下半年最新编程培训机构排名出炉!

就目前的IT行业发展情况来看,市场对程序员的需求还是非常大的,参加编程培训对小白来说是一个不错的选择,毕竟在专业的编程培训机构学习,能够在短时间内掌握技术要领。如今的编程培训机构鱼龙混杂,教学质量也是参差不齐…

我,是一个培训班出来的程序员 | 程序员有话说

作者 l HeroMe 责编 | 伍杏玲 本文经授权转载自Hollis(ID:hollischuang) 这个城市的所有人都在忙碌的过生活,他们行色匆匆,车水马龙,他们认为时间就是金钱。 我在办公楼里俯视着他们,在这个…

培训机构毕业的程序员被歧视的背后逻辑

(注:本文曾发表于《程序员》2015.11.B期) 现在,像达内、华清远见、国嵌、北大青鸟、传播智客等等IT培训机构很多,为尚未毕业的大学生、毕业了一时找不到工作的大学生、工作后想转行的再就业者提供了一个掌握新技能的机…

为什么都瞧不起培训班出来的程序员?

培训机构出来的程序员怎么了? 不怎么,就是容易招偏见! 某培训机构毕业的程序员大雄,和同班同学,一起伪造学历和经验,被HR发现后,全部被开除了。 而我在北京某大型培训机构(以下简称“…

几张图告诉你程序员的残酷现状,培训机构出来的程序员可以吗

别只看不评论,谈谈你心中的程序员,感兴趣的话可以扫描左侧二维码 IT行业可以说在国内行业薪资排名中一直名列前茅,这也是为什么IT行业一直持续火爆的原因,随着前几年来的移动互联网热潮,催生了大量的Android开发岗位&…

为什么很多公司不要培训机构出来的程序员?

近几年,互联网创业潮让IT技术人员的需求大大增加,各类IT培训机构风生水起,办得如火如荼。然而,一些公司却招聘网站上写着”没有上过培训班的优先。“为什么会有这样的区别对待呢? 经过调查发现,培训机构出来的程序员被…

为什么很多公司不要从IT培训机构出来的程序员?

在很多平台看到这样的问题:为什么很多公司不要从IT培训机构出来的程序员?作为一名it培训行业从业者,我试着去了解和分析提出这种问题的人,其出发点和立场,并客观阐述个人对于这个问题的一些看法。 为什么有一些公司不…

如何看待培训机构出来的非科班程序员

看着身边的同学和朋友的情况,有感而发,打算从各方面角度说一说这件事。 近几年,互联网创业潮让IT技术人员的需求大大增加,各类IT培训机构风生水起,办得如火如荼。大多培训机构都是以保底工资nk,年薪轻松上…

程序员编程培训

作为公认的屌丝逆袭最佳途径,程序员一度成为一个非常吃香的职业。因为这是一个不太看重学历和性别的行业,只要你技术过关,就不愁没工作。那么如何才能成为一位合格的程序员呢?除了大学专业是计算机之外,报培训班或许是…

从培训机构出来的程序员,后来都怎么样了?

Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 知乎上有这样一个问题,培训班程序员几个月出来就月薪过万,那为什么我们还要花四年时间上大学? 乍一…

从培训机构出来的程序员,后来都怎么样了? | 程序员有话说

作者 | 素年清时 责编 | 伍杏玲 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 【程序人生 编者按】随着互联网的大火,各大城市催生了一个又一个的培训班,每年以批量生产的模式向社会输送…

中国的程序员培训是不是有问题?

中国技术开放日的出海团对日本进行了为期一周的访问。笔者随行了头两天,参加 Slush Asia 大会,并访问了 Gungho 和 Deloitte 两家企业。虽然已经在日本生活了四年,但这样的体验却甚少,对中日两国的技术力有不少思考。 不知从什么时…

程序员培训班一般要多少钱?

程序员应该算是目前转行比较多的一个岗位,主要是现在程序员的薪资比较高,而且从事程序员培训的机构也比较多,大家有更多的机会和选择能够学好程序员开发技能,但是参加培训学习技能是需要一定的费用,而且价格并不是很低…

培训机构出来的程序员进不了大厂?

科班出身的程序员和培训机构出来的程序员到底有什么区别? 作者 | Sung Rhee 译者 | 弯月 责编 | 晋兆雨 出品 | CSDN(ID:CSDNnews) 十年前,获得计算机科学学位是进入蓬勃发展的技术领域的唯一途径。然而&#xff0…

现在培训机构出来的程序员还好找工作吗?

本篇文章主要解惑,后台粉丝留言询问的问题:小白0基础的朋友如何转行做程序员和培训机构培训后还能找到工作吗的问题。 日期:2021年8月16日 作者:任聪聪 培训机构出来的程序员为什么不好找工作的详解 答案是企业喜欢有经验的&…