java编码工作原理(给我手写一个哈夫曼编码)
java编码工作原理(给我手写一个哈夫曼编码)
2024-11-07 11:29:31  作者:敗鎵尐爺  网址:https://m.xinb2b.cn/life/irq308430.html

哈弗曼树往往都会根据哈夫曼编码结合着来说,因此这篇文章,主要结合着面试问题来说明。

一、基本概念

哈夫曼树的目的是找出存放一串字符所需的最少的二进制编码, 原理是通过统计出每种字符出现的频率!不断地对其合并。

举个例子:有一串字符,现在把这些字符进行统计,频率表 A:60, B:45, C:13 D:69 E:14 F:5 G:3。现在要对这些字符进行编码,但是前提是使用最少的二进制编码。这时候怎么办呢?这就用到了我们的哈弗曼树。

我们需要构造一个哈弗曼树,构造赫夫曼树的算法是一个贪心算法,贪心的地方在于:总是选取当前频率(权值)最低的两个结点来进行合并,构造新结点。

现在我们就来构造一颗哈弗曼树。

二、构造哈弗曼树

刚刚我们已经说了,构造哈夫曼树是每次选取当前频率最低的两个节点来进行合并就好了。

1、原始序列


2、选取最小的F和G节点合并


3、选取目前最小的C节点与8合并


4、继续重复以上步骤进行合并


到此为止,我们的哈弗曼树就已经构造出来了。接下来我们添加01规则,进行哈夫曼编码。

三、哈夫曼编码

哈夫曼编码的规则是,左边添加0,右边添加1。看下图就明白了。


OK,也就是在每一条边上添加了01。此时我们来看每一个字符的编码。

A:10 B:01 C:0011 D:11 E:000 F:00101 G:00100

四、java实现哈夫曼编码

我们直接给出一个整体的哈夫曼编码的java实现。

第一步:定义一个节点


第二步:实现哈夫曼编码



  • 人生感悟境界高精辟句子(人生最现实的一段话)
  • 2024-11-07人生最现实的一段话不要找不伤害你的人;不要讨好那些不帮你的人;永远不要打扰那些想你的人把爱你的人放在第一位;帮助你的人,和他交很深的朋友;记住想你的人!说“不”比“快点”更有效,说“再看看”比讨价还价时“便宜”更有效,。
  • 山西盐碱面的正宗做法(头伏饺子二伏面)
  • 2024-11-07头伏饺子二伏面马上要进入二伏了,俗话说“头伏饺子二伏面”,作为一个北方人,面食其实已经是生活的日常了今天就分享我们河南人最喜欢的几款面食,每一种都极具河南特色,来看看你吃过几种第一种:卤面食材准备:细面条,长豆角,。
  • 杨紫和乔欣演过的电视剧(杨紫邓伦绝世之恋)
  • 2024-11-07杨紫邓伦绝世之恋四月你好,三月再见三月已经过去,四月就要到来,小伙伴们马上就要追完《独孤天下》了吧,是不是就要剧荒了呢?不要着急,即将到来的四月,好剧接连不断,刘诗诗佟大为演绎爱恨情杀都市剧,蔡少芬王雷演绎家庭喜剧,。
  • 保卫萝卜3集市第22关过关攻略(保卫萝卜3集市第21关怎么过)
  • 2024-11-07保卫萝卜3集市第21关怎么过保卫萝卜3集市第21关一共14波,怪物的移动速度超级快,所以小伙伴们要格外小心哦接下来一起看看集市第21关怎么过首先两边放鱼刺,升到二级,然后各放一个冰冻星减速根据小怪的位置移动炮塔记住一定要在空余的。
  • 万宝龙南北半球腕表(品鉴万宝龙1858系列Geosphere世界时腕表)
  • 2024-11-07品鉴万宝龙1858系列Geosphere世界时腕表[腕表之家腕表品鉴]融合了古典和经典的万宝龙,承袭了美耐华的制表传统,在制表界中占有独特的地位今年,万宝龙1858系列的全新腕表从上世纪二、三十年代的美耐华专业军用及山峰探险腕表当中汲取灵感,融入大自。
  • 手机信号满格为什么总是断网(手机明明是满格信号)
  • 2024-11-07手机明明是满格信号在使用手机的过程中,相信很多人都碰到过这样的情况,明明是满格的信号却还时不时出现断网现象,除了是手机本身在信号方面不行外,还可能是这4项设置所导致的1、省电模式手机的续航是许多手机用户都非常在意的,所。
  • 六亲无缘是什么意思
  • 2024-11-07六亲无缘是什么意思“六亲无缘”是一个成语,表示一个人失去了与父母、兄弟姐妹、亲戚朋友等六亲之间的联系和感情,或者是指与某人毫无亲缘关系,彼此没有任何交集这个成语可以用来描述某个人与他人之间的亲欲疏远,甚至是矛盾、冷漠等。
  • 本田幻影150优缺点(上下班通勤来回30km)
  • 2024-11-07上下班通勤来回30km上下班通勤来回30km,看好本田幻影150,这款车值得选吗?我是骑士分享感谢这位车友的翻牌根据描述得知,这位车友因为通勤需求比较看好五羊本田的幻影150,但因为关于这款车目前的介绍比较少,所以在是否值。
  • 李治和武则天谁的功绩大(唐高宗李治与武则天之间的关系)
  • 2024-11-07唐高宗李治与武则天之间的关系今天来了解一下高宗皇帝李治与武则天之间的关系咱们都知道武则天是唐太宗的妃子,却和唐高宗李治也发生了关系,而这些关系也是在现代人来讲一种乱伦的关系,那到底这是怎么一回事呢?事实上,现在大家公认的武则天的。
  • 互动电影游戏的新里程碑(影视游戏暗流汹涌)
  • 2024-11-07影视游戏暗流汹涌文|竞核(ID:hungrydou)对于风口的敏感度,以及追风的速度,中小团队一直以来都是冲锋在前最近一家名为苏州扬歌信息技术的公司,正跑步杀入互动内容领域此前该公司曾开发过聊天表情输入法,前两年还做。
  • 宝宝病毒性肠胃炎症状及治疗(宝宝病毒性肠胃炎不要轻视)
  • 2024-11-07宝宝病毒性肠胃炎不要轻视病毒性肠胃炎也称为肠胃型感冒当病毒侵入喉咙,被称为感冒,当病毒侵入肠胃道,会引起种种肠胃不适症状因此被视为是肠胃的感冒,其中轮状病毒、诺罗病毒、腺病毒,都是常见的三种病毒类型三大病毒类型轮状病毒感染,。