В Huffman Compress я не знаю, почему ни один код не будет длиннее 16 бит, когда все частоты масштабируются так, чтобы соответствовать одному байту

«Каждый код представляет собой короткое целое число, потому что можно доказать, что когда все частоты масштабируются так, чтобы соответствовать одному байту, никакой код не будет длиннее 16 бит»

Означает ли это, что глубина дерева Хаффмана равна 16? Если это правда, как рассчитать глубину полного двоичного дерева? Если это не так, что это значит?


person BOB    schedule 02.12.2013    source источник


Ответы (1)


Ваш отрывок почему-то неполон. Глубина также зависит от количества кодируемых символов. Если, например, вы кодируете 100000 различных символов, каждый из которых встречается только один раз (где 1 довольно легко умещается в байте), вам потребуется более 16 бит на символ. Глубина этого дерева будет 17.

Они имеют в виду набор частот наихудшего случая, который максимизирует длину кода, полученную в результате алгоритма Хаффмана. Этот набор наихудшего случая является вариантом последовательности Фибоначчи.

person Mark Adler    schedule 02.12.2013