Обсуждение:Канонический код Хаффмана


Эта статья, вероятно, нуждается в переписывании примеров, поскольку каноническое кодирование Хаффмана начинается со всех нулей для самого короткого кода и заканчивается всеми единицами для самого длинного кода:

Двумя хорошими примерами слов могут быть головная боль и плацдарм . Оба этих слова имеют длину не менее 8 букв, содержат повторяющиеся буквы и используют только первые восемь букв алфавита. капуста и багаж по семь букв за штуку.

Мне кажется, что данный псевдокод работает только в том случае, если количество битов в коде увеличивается только на 1.

Я думаю, что внешний цикл должен иметь длину в битах, а затем иметь внутренний цикл по символам с этой длиной в битах, поэтому сдвиг происходит для каждого увеличения длины кода на единицу. — Предыдущий неподписанный комментарий добавлен 131.107.0.86 ( обсуждение ) 18:36, 26 мая 2009 г. (UTC)

Я думаю, что есть путаница между числами и кодами: «010» и «10» — это одно и то же число, но разные коды, поэтому алгоритм должен быть примерно таким:

В нашей канонической версии мы знаем, что символы расположены в последовательном алфавитном порядке и что более поздний код всегда будет иметь более высокое значение, чем более ранний.