Сжатие массива из двух значений - PullRequest
0 голосов
/ 20 мая 2018

Какой самый дешевый способ сжатия массива в массив byte [], если в нем только два возможных значения?Длина массива не имеет ограничений.Лучшая идея, которую я видел до сих пор, - вставить повторное число раз, когда каждое значение появляется, поэтому, например, массив «11111001» сжимается до «521».Интересно, есть ли лучший способ?Спасибо.

1 Ответ

0 голосов
/ 21 мая 2018

Во-первых, преобразовать в битовый массив.Сразу же это займет 1/8 места.

Затем вам нужно будет проверить ваши данные, чтобы увидеть, есть ли какая-либо очевидная избыточность.Если нет, то все готово.Если есть избыточность, вам нужно найти способ ее моделирования, а затем сжать ее.Кодирование длин серий, как вы предлагаете, полезно, только если в данных часто встречаются длинные серии нулей и / или единиц.

...