2019独角兽企业重金招聘Python工程师标准>>>

哈夫曼树(霍夫曼树)又称为最优二叉树.

n个叶子结点的哈夫曼树共有几个结点 ?

Huffman 树是所谓的正则二叉树,只有度为0和度为2的结点
根据二叉树的性质,n0 = n2 + 1,因此该树中度为2的结点数量为n-1
于是一共有2n-1个结点

一般用来减少程序整体运行时间,将权重大的放在前面。

下面我们以【5、8、4、11、9、13】为例来画出哈夫曼树(数字大小代码权重大小,越大的权重越大)

方法/步骤

  1. 1

    第一步:按从小到大排序。

    【5、8、4、11、9、13】→【4、5、8、9、11、13】

  2. 2

    第二步:选最小两个数画出一个树,最小数为4和5。

    给定的4、5、8、9、11、13为白色, 红色的9为4+5,与给定的白9无关,新序列为:【红9(含子节点4、5)、8、9、11、13】

  3. 3

    之后一直重复第一、第二步:排序然后取两个最小值。实际就是一个递归过程

    排序:

  4. 4

    取两个最小数8和9:

  5. 5

    排序:

  6. 6

    取两个最小数9和11:

  7. 7

    排序,然后取两个最小数13和17:

  8. 8

    取两个最小数20和30:

转载于:https://my.oschina.net/betayuan/blog/1547513

快速画出哈夫曼树/霍夫曼树/最优树相关推荐

  1. openlayers中使用rBush(R树)来存放要素等信息,本文修改了一点其中的rbush源码中的demo,使用canvas画出了insert和delete操作(建立树和删除树中数据)

    openlayers中使用rBush(R树)来存放要素等信息,本文修改了一点其中的rbush源码中的demo,使用canvas画出了insert和delete操作(建立树和删除树中数据) 修改后的源代 ...

  2. OpenCV之imgproc 模块. 图像处理(3)霍夫线变换 霍夫圆变换 Remapping 重映射 仿射变换

    霍夫线变换 目标 在这个部分您将学习到: 使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线. 原理 Note 以下原理的说明来自书籍 学习OpenCV  ...

  3. 如何快速画出霍夫曼树

    哈夫曼树(霍夫曼树)又称为最优二叉树. 一般用来减少程序整体运行时间,将权重大的放在前面. 下面我们以[5.8.4.11.9.13]为例来画出哈夫曼树(数字大小代码权重大小,越大的权重越大) 方法/步 ...

  4. 数据结构与算法之Huffman tree(赫夫曼树 / 霍夫曼树 / 哈夫曼树 / 最优二叉树)

    目录 赫夫曼树概述 定义 构造赫夫曼树步骤 代码实现 赫夫曼树概述 HuffmanTree因为翻译不同所以有其他的名字:赫夫曼树.霍夫曼树.哈夫曼树 赫夫曼树又称最优二叉树,是一种带权路径长度最短的二 ...

  5. 怎样快速画出一个正方体_小学数学非常有效的“画图”解题法,快速解题的“金钥匙”...

    小学阶段的数学主要培养的是孩子的逻辑思维能力,是从形象思维逐步过度到抽象思维的过程,如果在小学阶段没有将基础打牢,那么等孩子上初中后面对更复杂的学习内容,就会变得更吃力. 在小学数学中,"画 ...

  6. matlab 聚类分析 画出聚类树,plot单独画出pheatmap返回的聚类结果(聚类树)

    前面两篇文章介绍到pheatmap返回行和列的hclust结果: 1.按照前两篇文章的基础数据获得的热图结果,对行(基因的聚类结果)聚类树单独进行绘制,可以借助plot()函数: 默认画法 >  ...

  7. 怎样快速画出一个正方体_Excel 怎样在EXCEL中快速制作出正方形/如何画多个正方体...

    Excel 怎样在EXCEL中快速制作出正方形 根据列宽:行高=1:5.85来设置即可. 如果要全部设置,全选单元格(ctrl A),分别在列头和行头右键,按1:5.85的比例分别设置列宽和行高. e ...

  8. matlab k线图快速画出红色阳线绿色阴线

    function [h]= kline(data) %画出红色阳线绿色阴线图 % 此处显示详细说明 hang=size(data,1); data1=data; data2=data; figure( ...

  9. 怎样快速画出一个正方体_素描教程:新手如何快速学会正方体

    新手怎么画素描正方体? 系统学素描,一般情况下老师都会让你画一下正方体.那么对于我们新手来说,画正方体不难,难就在它的透视结构不好把握.下面我们来学习新手怎么画素描正方体. 结构素描画法 画石膏像正方 ...

最新文章

  1. php api数据,php API查询数据
  2. 对HTTP/2 支持
  3. php调用文章标题,zblogphp标题格式的标签调用详细说明
  4. 机器学习之PCA原理
  5. day12 生成器和各种推导式
  6. swift中没有selectall的解决
  7. axios请求拦截器错误_React中使用高阶组件和axios的拦截器,统一处理请求失败提示...
  8. bzoj3713: [PA2014]Iloczyn(乱搞)
  9. 3DMAX解决Vray渲染材质溢色问题的三种方法
  10. FEKO学习:偶极子天线仿真
  11. 论文相关-MATHTYPE字体对应
  12. 【算法】ACO蚂蚁寻路最短路径TSP问题-多篇文章总结
  13. 20120817prbs伪随机二进制序列
  14. 几招紧急应对夏天雷雨天机房断电的方法!
  15. linux查找文件中的字符串
  16. 降采样,过采样,欠采样,子采样,下采样,上采样,你学会了吗?【总结】
  17. 贝尔宾团队角色理论:附Belbin Team Roles测试 CW CO SH PL RI ME TW FI
  18. android增量编译,GitHub - brok1n/androidBsdiffUpdate: Android增量更新项目源代码。带C源程序以及ndk编译好的so包。可以直接导出使用。...
  19. Linux触摸屏动效
  20. java用秘钥实现试用期_Android - 如何实现免费试用期,无需提前付费

热门文章

  1. sentry mysql_Apache Sentry安装及简单使用
  2. 水晶报表--完美excel(上)
  3. 分享使用PHP开发留言板
  4. 使用函数计算分段函数的值
  5. 强化学习蘑菇书Easy RL第二、三章学习(马尔可夫决策过程、表格型方法)
  6. 计算机绘图快捷键,计算机绘图常用软件快捷键大全
  7. java通过qq邮箱发送_java实现发送QQ邮箱
  8. 直播预告 | ICLR专场一
  9. 飞机机身控制电子设计,原理图和PCB
  10. 关于SDN理解,老杨都放在这里了