tgoop.com/the_algorithms/4927
Last Update:
Код Хаффмана
Метод без потерь для сжатия данных, который использует переменную длину кодирования. Он был разработан Дэвидом Хаффманом в 1952 году.
Алгоритм:
1. Создаем таблицу частот символов в исходном наборе данных.
2. Создаем листы дерева для каждого символа на основе их частоты, присваивая символам коды длиной 1.
3. Повторяем следующие шаги до тех пор, пока не будет создано дерево:
а. Выбираем два узла с наименьшей частотой и создаем новый узел-родитель.
б. Присваиваем новому узлу суммарную частоту своих потомков.
в. Дополняем левому потомку кодом "0" и правому потомку кодом "1".
4. Повторяем шаг 3 до тех пор, пока все узлы не будут объединены в один корневой узел.
Алгоритм выполняет сортировку и слияние символов, что требует O(n log n) операций. Однако, само кодирование и декодирование имеют сложность O(n) (n - размер исходной строки).
BY Алгоритмы и структуры данных

Share with your friend now:
tgoop.com/the_algorithms/4927