Когда кто-то рассматривает алгоритмы сжатия, у каждого часто есть свои преимущества и недостатки. Природа сжатия заключается в том, что при заданном наборе данных для этих данных существуют лучшие и худшие алгоритмы сжатия.
Хаффман действительно очень хорош в некоторых вещах. В первую очередь это касается данных, которые многократно повторяют порядок и содержат подмножество символьного пространства. Например, текстовые файлы на английском языке. В английском языке, как правило, одни и те же буквы, за которыми следуют такие же другие буквы.
Если ваш профессор или книга создавали у вас впечатление, что Хаффман не используется, они ошибаются. Например, почти все сообщения в Интернете и из Интернета в какой-то момент кодируются Хаффманом. (Несколько протоколов связи используют его.) Большинство файлов изображений (jpegs) имеют кодировку Хаффмана. Большинство музыкальных файлов (mp3s) кодируются Хаффманом. Есть много других примеров.
Одна из причин, по которой Хаффман используется, заключается в том, что его можно «обнаружить» с помощью немного другого алгоритма, называемого адаптивным Хаффманом. Когда вы читаете файл, вы изучаете код Хаффмана и «сжимаете по ходу». Это упрощенный обзор, но вы поняли идею.
Чтобы решить, как использовать лучший алгоритм для решения проблемной ситуации, zip-файлы позволяют использовать несколько различных сжатий в зависимости от того, какое из них лучше для данного файла.