Huffman 树构建过程是自顶向下, 还是自底向上?

本文探讨了Huffman树构造的两种理解方式:自底向上和自顶向下。自底向上策略通过不断合并权值最小的节点构建,而自顶向下则将原问题转化为规模更大的子问题。尽管递归版本的归并排序看似自顶向下,但实际操作中仍是自底向上。作者支持自顶向下观点。
摘要由CSDN通过智能技术生成

摘要: Huffman 树是一个经典算法. 本文讨论它的策略.

观点一: 自底向上

每次是将当前权值最小的两个节点进行合并, 获得一个新的节点, 权值是前两者之和.
从直观来讲, 不断获得 (子孙节点更多的) 分支节点, 最后才获得根节点, 所以是向底向上的.

观点二: 自顶向下

原问题具有 n n n 个节点, 可以直接看成 n n n 棵树的一个森林. 经过一次合并后, 变成了具有 n − 1 n - 1 n1 棵树的森林的合并问题.
将原问题直接转换成规模较上的子问题, 且子问题与原问题性质完全相同, 因此是自顶向下的.

相关问题: 归并排序

归并排序非递归版本先解决的是长度为 2 子序列的排列问题, 然后是长度为 4, 以此类推. 因此, 它是自底向上的.
归并排序递归版本看起来是自顶向下的, 但是最终的实现, 还是要把子序列进行合并, 所以仍然是自底向上的.

小结

我支持观点二. 不服来杠.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值