尝试在 C# 中实现霍夫曼编码 - 是否正确?
Trying to implement Huffman Encoding in C# - Is it correct?
我正在尝试使用 C# 作为编程语言在 Visual Studio 中实现霍夫曼编码。
我在 rosettacode.org 上找到了一个例子:http://rosettacode.org/wiki/Huffman_coding#C.23
但我不确定这是否是正确的实现。 rosettacode 在此 link http://rosettacode.org/wiki/File:CSharpHuffman.jpg 下为输入 "this is an example for huffman encoding" 给出的输出对我来说似乎不正确,因为频率较低的字符比频率较高的字符具有更少的位。
你对此有何看法?
你是正确的,频率较低的符号应该有更多位的代码,而频率较高的符号应该有较少位的代码。
你举的例子非常好。没有比特长度比任何其他频率更高的符号更短的符号。
我正在尝试使用 C# 作为编程语言在 Visual Studio 中实现霍夫曼编码。
我在 rosettacode.org 上找到了一个例子:http://rosettacode.org/wiki/Huffman_coding#C.23
但我不确定这是否是正确的实现。 rosettacode 在此 link http://rosettacode.org/wiki/File:CSharpHuffman.jpg 下为输入 "this is an example for huffman encoding" 给出的输出对我来说似乎不正确,因为频率较低的字符比频率较高的字符具有更少的位。
你对此有何看法?
你是正确的,频率较低的符号应该有更多位的代码,而频率较高的符号应该有较少位的代码。
你举的例子非常好。没有比特长度比任何其他频率更高的符号更短的符号。