From c223bc543f3756da1e2f4b52de86d451d753019a Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 25 Oct 2026 18:52:00 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E7=AE=97=E6=B3=95=20-=20=E5=85=B6?= =?UTF-8?q?=E5=AE=83.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 量词统一为“一棵”。 --- notes/算法 - 其它.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notes/算法 - 其它.md b/notes/算法 - 其它.md index 7325f23a..4e295c90 100644 --- a/notes/算法 - 其它.md +++ b/notes/算法 - 其它.md @@ -64,7 +64,7 @@ from H1 to H3 可以将每种字符转换成二进制编码,例如将 a 转换为 00,b 转换为 01,c 转换为 10,d 转换为 11。这是最简单的一种编码方式,没有考虑各个字符的权值(出现频率)。而哈夫曼编码采用了贪心策略,使出现频率最高的字符的编码最短,从而保证整体的编码长度最短。 -首先生成一颗哈夫曼树,每次生成过程中选取频率最少的两个节点,生成一个新节点作为它们的父节点,并且新节点的频率为两个节点的和。选取频率最少的原因是,生成过程使得先选取的节点位于树的更低层,那么需要的编码长度更长,频率更少可以使得总编码长度更少。 +首先生成一棵哈夫曼树,每次生成过程中选取频率最少的两个节点,生成一个新节点作为它们的父节点,并且新节点的频率为两个节点的和。选取频率最少的原因是,生成过程使得先选取的节点位于树的更低层,那么需要的编码长度更长,频率更少可以使得总编码长度更少。 生成编码时,从根节点出发,向左遍历则添加二进制位 0,向右则添加二进制位 1,直到遍历到叶子节点,叶子节点代表的字符的编码就是这个路径编码。