快速画出哈夫曼树/霍夫曼树/最优树
2019独角兽企业重金招聘Python工程师标准>>>
哈夫曼树(霍夫曼树)又称为最优二叉树.
n个叶子结点的哈夫曼树共有几个结点 ?
Huffman 树是所谓的正则二叉树,只有度为0和度为2的结点
根据二叉树的性质,n0 = n2 + 1,因此该树中度为2的结点数量为n-1
于是一共有2n-1个结点
一般用来减少程序整体运行时间,将权重大的放在前面。
下面我们以【5、8、4、11、9、13】为例来画出哈夫曼树(数字大小代码权重大小,越大的权重越大)
方法/步骤
1
第一步:按从小到大排序。
【5、8、4、11、9、13】→【4、5、8、9、11、13】
2
第二步:选最小两个数画出一个树,最小数为4和5。
给定的4、5、8、9、11、13为白色, 红色的9为4+5,与给定的白9无关,新序列为:【红9(含子节点4、5)、8、9、11、13】
3
之后一直重复第一、第二步:排序然后取两个最小值。实际就是一个递归过程
排序:
4
取两个最小数8和9:
5
排序:
6
取两个最小数9和11:
7
排序,然后取两个最小数13和17:
8
取两个最小数20和30:
转载于:https://my.oschina.net/betayuan/blog/1547513
快速画出哈夫曼树/霍夫曼树/最优树相关推荐
- openlayers中使用rBush(R树)来存放要素等信息,本文修改了一点其中的rbush源码中的demo,使用canvas画出了insert和delete操作(建立树和删除树中数据)
openlayers中使用rBush(R树)来存放要素等信息,本文修改了一点其中的rbush源码中的demo,使用canvas画出了insert和delete操作(建立树和删除树中数据) 修改后的源代 ...
- OpenCV之imgproc 模块. 图像处理(3)霍夫线变换 霍夫圆变换 Remapping 重映射 仿射变换
霍夫线变换 目标 在这个部分您将学习到: 使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线. 原理 Note 以下原理的说明来自书籍 学习OpenCV ...
- 如何快速画出霍夫曼树
哈夫曼树(霍夫曼树)又称为最优二叉树. 一般用来减少程序整体运行时间,将权重大的放在前面. 下面我们以[5.8.4.11.9.13]为例来画出哈夫曼树(数字大小代码权重大小,越大的权重越大) 方法/步 ...
- 数据结构与算法之Huffman tree(赫夫曼树 / 霍夫曼树 / 哈夫曼树 / 最优二叉树)
目录 赫夫曼树概述 定义 构造赫夫曼树步骤 代码实现 赫夫曼树概述 HuffmanTree因为翻译不同所以有其他的名字:赫夫曼树.霍夫曼树.哈夫曼树 赫夫曼树又称最优二叉树,是一种带权路径长度最短的二 ...
- 怎样快速画出一个正方体_小学数学非常有效的“画图”解题法,快速解题的“金钥匙”...
小学阶段的数学主要培养的是孩子的逻辑思维能力,是从形象思维逐步过度到抽象思维的过程,如果在小学阶段没有将基础打牢,那么等孩子上初中后面对更复杂的学习内容,就会变得更吃力. 在小学数学中,"画 ...
- matlab 聚类分析 画出聚类树,plot单独画出pheatmap返回的聚类结果(聚类树)
前面两篇文章介绍到pheatmap返回行和列的hclust结果: 1.按照前两篇文章的基础数据获得的热图结果,对行(基因的聚类结果)聚类树单独进行绘制,可以借助plot()函数: 默认画法 > ...
- 怎样快速画出一个正方体_Excel 怎样在EXCEL中快速制作出正方形/如何画多个正方体...
Excel 怎样在EXCEL中快速制作出正方形 根据列宽:行高=1:5.85来设置即可. 如果要全部设置,全选单元格(ctrl A),分别在列头和行头右键,按1:5.85的比例分别设置列宽和行高. e ...
- matlab k线图快速画出红色阳线绿色阴线
function [h]= kline(data) %画出红色阳线绿色阴线图 % 此处显示详细说明 hang=size(data,1); data1=data; data2=data; figure( ...
- 怎样快速画出一个正方体_素描教程:新手如何快速学会正方体
新手怎么画素描正方体? 系统学素描,一般情况下老师都会让你画一下正方体.那么对于我们新手来说,画正方体不难,难就在它的透视结构不好把握.下面我们来学习新手怎么画素描正方体. 结构素描画法 画石膏像正方 ...
最新文章
- php api数据,php API查询数据
- 对HTTP/2 支持
- php调用文章标题,zblogphp标题格式的标签调用详细说明
- 机器学习之PCA原理
- day12 生成器和各种推导式
- swift中没有selectall的解决
- axios请求拦截器错误_React中使用高阶组件和axios的拦截器,统一处理请求失败提示...
- bzoj3713: [PA2014]Iloczyn(乱搞)
- 3DMAX解决Vray渲染材质溢色问题的三种方法
- FEKO学习:偶极子天线仿真
- 论文相关-MATHTYPE字体对应
- 【算法】ACO蚂蚁寻路最短路径TSP问题-多篇文章总结
- 20120817prbs伪随机二进制序列
- 几招紧急应对夏天雷雨天机房断电的方法!
- linux查找文件中的字符串
- 降采样,过采样,欠采样,子采样,下采样,上采样,你学会了吗?【总结】
- 贝尔宾团队角色理论:附Belbin Team Roles测试 CW CO SH PL RI ME TW FI
- android增量编译,GitHub - brok1n/androidBsdiffUpdate: Android增量更新项目源代码。带C源程序以及ndk编译好的so包。可以直接导出使用。...
- Linux触摸屏动效
- java用秘钥实现试用期_Android - 如何实现免费试用期,无需提前付费