Run-Length Encoding — Визуализатор алгоритмов

Шаг 1:Compress "AAABBBCCCCDAA" with Run-Length Encoding. Replace each consecutive run of identical characters with (character, count).

Run-Length Encoding

Лёгкий
Временная сложность
O(n²)O(n log n)O(n)O(log n)O(1)n →
Лучший: 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. Каждый из них имеет интерактивную визуализацию.