Изменения

Перейти к: навигация, поиск

Алгоритмы LZ77 и LZ78

9 байт убрано, 13:04, 21 апреля 2020
offset > length !!!!
| <tex>\fbox{$ab$}acabacabadaca</tex> || <tex>a</tex> || <tex>\langle 2, 1, c \rangle</tex> ||
|-
| <tex>\fbox{$abac$}abacabadaca</tex> || <tex>abacaba</tex> || <tex>\langle 4, 7, d \rangle</tex> || Здесь выгодно сделать так, что <tex>offset > < length</tex>
|-
| <tex>abacaba\fbox{$cabad$}aca</tex> || <tex>a</tex> || <tex>\langle 2, 1, c \rangle</tex> || Последовательность <tex>aca</tex> уже встречалась, но она находится за пределами окна, и <tex>\mathrm{LZ77}</tex> её не находит
'''if''' not (buffer is empty): <font color=green>// если буффер не пуст - этот код уже был, нужно его добавить в конец словаря</font>
last_ch = buffer.peek() <font color=green>// берем последний символ буффера, как "новый" символ</font>
buffer = buffer.pop() <font color=green>// удаляем последний символ из буфера</font>
ans.push({dict[buffer], last_ch}) <font color=green>// добавляем пару в ответ</font>
'''return''' ans
Анонимный участник

Навигация