哈夫曼编码的递归关系

问题描述

假设我们递归地实现霍夫曼算法。假定算法的输入是二进制最小堆,其中堆的每个节点都存储一个字符及其关联的概率。提供一个描述实现的运行时间T(n)的循环。

在这里,我必须找到Huffman编码算法的递归关系,形式为

T(n) = aT(n/b) + f(n).

下面介绍了我尝试过的内容

让我们的字符集为[a,b,c,d,e],它们的概率递减。

[a,b,c,d,e]
      |
[a,{d,e}]
      |
[a,{c,e}}]
      |
[a,{b,e}}}]
      |
[{a,e}}}}]

在这里我们可以看到子问题在每个步骤中始终为1,因此,“ a”的值= 1,并且由于我们可以在恒定时间内完成两个字符的组合,因此“ f(n)= 1”。但是,我们将每一步的步数都减少了1,而不是将其除以任何因子,所以我无法识别“ b”的值。

我无法完成这个等式。谁能帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)