Временная сложность
Лучший: O(n)
Средний: O(n)
Худший: O(n)
Run-Length Encoding (RLE) — это простой алгоритм сжатия данных без потерь. Он заменяет последовательные повторения одного и того же символа одной парой (символ, количество).
Как работает алгоритм:
1. Просматривать входные данные слева направо
2. При появлении нового символа начинать новую серию
3. Продолжать подсчёт, пока следующий символ совпадает с текущим
4. Записать пару (символ, количество) и продолжить обработку после серии
Почему это работает:
Длинные последовательности одинаковых значений занимают лишнее место при обычном хранении. Однократное кодирование длины серии позволяет устранить эту избыточность. Декодирование выполняется в обратном порядке: каждая пара преобразуется в указанное количество копий символа.
Временная сложность:
Лучший случай: O(n)
Средний случай: O(n)
Худший случай: O(n)
Пространственная сложность: O(k), где k — количество серий
Свойства:
- Сжатие без потерь, если количества и символы сохраняются без потерь
- Отлично подходит для разреженных растровых изображений, значков и простой графики (BMP RLE, PCX, факсимильные изображения)
- Может увеличивать размер данных, если в них нет длинных серий (например, при чередовании ABABAB)
- Часто используется как первый этап перед кодированием Хаффмана или арифметическим кодированием
RLE — одна из старейших идей сжатия данных, которую до сих пор изучают: её легко реализовать и визуализировать, а также она служит строительным блоком более сложных форматов.
Похожие алгоритмы
Частые вопросы
- Что такое Кодирование длин серий (Run-Length Encoding)?
- Run-Length Encoding (RLE) — это простой алгоритм сжатия данных без потерь. Он заменяет последовательные повторения одного и того же символа одной парой (символ, количество).
- Какова сложность Кодирование длин серий (Run-Length Encoding)?
- Время (среднее): O(n) · Память: O(k)
- Для кого предназначена визуализация Кодирование длин серий (Run-Length Encoding)?
- Визуализация Кодирование длин серий (Run-Length Encoding) рассчитана на начальный уровень в категории «Сжатие данных». Полезна для студентов, подготовки к собеседованиям и практического изучения.
- Какие алгоритмы связаны с Кодирование длин серий (Run-Length Encoding)?
- В той же категории (Сжатие данных) вы можете изучить: LZ77, LZW, Huffman Coding. Каждый из них имеет интерактивную визуализацию.