Коды Хаффмана: | |
Пусть имеется массив частот встречаемости
символов A, бита символа B и образованного символа C. Тогда для построения
оптимального кода для каждого символа нужно сделать следующее: Выберем 2
символа с наименьшими значениями A(скажем это были символы s1 и s2), и образуем
новый символ (скажем s3): A[s3]=A[s1]+A[s2]; после чего делаем пометки B[s1]=0,B[s2]=1,C[s1]=s3,C[s2]=s3.
Символы s1 и s2 исключаем из дальнейшего рассмотрения. Когда останется только
один символ, построение кодов завершено. Кодирование: Пусть нужно закодировать символ s. Пока s неравен последнему символу, выводим B[s] и присваеваем s значение C[s] Декодирование обратно кодированию. |