【问题标题】:Trying to implement Huffman Encoding in C# - Is it correct?尝试在 C# 中实现霍夫曼编码 - 正确吗?
【发布时间】:2015-10-31 20:40:18
【问题描述】:

我正在尝试使用 C# 作为编程语言在 Visual Studio 中实现霍夫曼编码。

我在 rosettacode.org 上找到了一个示例:http://rosettacode.org/wiki/Huffman_coding#C.23

但我不确定这是否是正确的实现。 Rosettacode 在此链接http://rosettacode.org/wiki/File:CSharpHuffman.jpg 下为输入“这是霍夫曼编码的示例”给出的输出对我来说似乎不正确,因为频率较低的字符比频率较高的字符具有更少的位。

您对此有何看法?

【问题讨论】:

标签: c#-4.0 huffman-code rosetta-code


【解决方案1】:

你说得对,频率较低的符号应该有更多位的代码,而更频繁的符号应该有更少位的代码。

您指向的示例非常好。没有任何符号的比特长度比任何其他频率更高的符号都短。

【讨论】:

  • 也许我不太了解霍夫曼编码,空间出现了 5 次并且有 101 = 4 + 0 + 1 = 5 位,而 n 只出现了 4 次并且有 000 = 0 位是吗错了吗?
  • 我认为出现 5 次的空间的 101 比只出现 4 次的 n 的 000 位要多。
  • 101 是三位。 000 是三位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多