Изменения

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

Алгоритм LZMA

99 байт убрано, 20:38, 13 декабря 2016
Нет описания правки
====Кодер====
1. функция Функция принимает массив и длину массива как аргументы, если длина не была передана, то массив не обрабатывается.<br/>2. инициализируются Инициализируем переменные tmp, для сохранения последнего элемента и last для хранения предыдущего числа.инициализация цикла, где i это счетчикИнициализируем цикл.<br/>
3. В цикле: <br/>
* 3.1 сохранение символа Сохраняем символ под номером i в массиве <br/>* 3.2 вычисление разницы Вычисляем разницу между элементом под номером i и i-1, первый и перезаписываем ее в элемент не меняется, и присвоение разницы этому элементумассива с индексом i.<br/>
'''function''' delta_encode(bp: '''char*''', n: '''int''')
'''char''' last=0,''tmp
last=tmp
====Декодер====
1.инициализация переменной Инициализируем переменную для хранения последнего символа.<br/>2.инициализация цикла, где i это счетчикИнициализируем цикл.<br/>
3.В цикле:<br/>
*3.1 добавление Добавляем к этому элементу значение предыдущего элемента.*3.2 сохранение Сохраняем значение этого текущего элемента.
'''function''' delta_encode(bp:'''char*''', n:'''int''')
'''char''' last=0
Для начала пропустим ее через дельта фильтр.<br/>
Тогда исходная строка <tex>abehhilopsu</tex> примет вид: <tex>a</tex> <tex>1</tex> <tex>3</tex> <tex>3</tex> <tex>0</tex> <tex>1</tex> <tex>3</tex> <tex>3</tex> <tex>1</tex> <tex>3</tex> <tex>2</tex>. Как мы видим, теперь в нашей строке вместо 10 различных символов 5 различных символа.<br/>
Далее применим к получившейся строке метод "скользящего " окна":
{| border="1"
!Сообщение
53
правки

Навигация