84
правки
Изменения
Нет описания правки
Непосредственным предшественником LZW явился алгоритм LZ78, опубликованный Абрахамом Лемпелем(''Abraham Lempel'') и Якобом Зивом (''Jacob Ziv'') в 1978 г. Этот алгоритм воспринимался как математическая абстракция до 1984 г., когда Терри Уэлч (Terry A. Welch) опубликовал свою работу с модифицированным алгоритмом, получившим в дальнейшем название LZW (Lempel-Ziv-Welch).
== Алгоритм ==
=== Кодирование ===# Инициализация словаря всеми возможными односимвольными фразами. Инициализация входной фразы ω X первым символом сообщения.# Считать очередной символ K Y из кодируемого сообщения.# Если КОНЕЦ_СООБЩЕНИЯ, то выдать код для ωX, иначе# : Если фраза ωK XY уже есть в словаре, присвоить входной фразе значение ωK XY и перейти к Шагу 2, иначе выдать код ωX, добавить ωK XY в словарь, присвоить входной фразе значение K Y и перейти к Шагу 2.Конец=== Декодирование ===# Инициализация словаря всеми возможными односимвольными фразами. Считать первый код X сообщения.# Считать очередной код Y из декодируемого сообщения.# Если КОНЕЦ_СООБЩЕНИЯ, то выдать символ для кода X, иначе: Если фразы под кодом XY нет в словаре, вывести фразу с кодом X, фразу с кодом XY занести в словарь. Иначе перейти к шагу 2.
== Пример ==