Если вы знаете, частотное распределение букв, Huffman Coding хороший баланс между сложностью, скоростью и эффективностью.
Если вы не знаете распределения букв или они случайны, просто сохраните их по 5 бит за раз. Например, рассмотрим строку «ABCDE». Числа буквы являются 0, 1, 2, 3, 4. переустроенные в двоичный, это:
00000 00001 00010 00011 00100
Теперь вы просто группа каждые 8 бит в байтах:
00000000 01000100 00110010 0xxxxxxx
Вы должны хранить также, чтобы вы знали, что в последних битах последнего байта нет полезных данных.
Если кодовое пространство не вызывает беспокойства, и вы просто хотите упаковать строки так же хорошо, как вы можете, вы можете использовать кодирование Хаффмана или арифметическое кодирование даже при равномерном распределении по частоте, чтобы упаковать каждый символ в биты log2 (26) на средний, что немного меньше 5 (а именно 4,7 бит).
Ну, ** что будет храниться? ** – deceze
Алфавитные кулоны A-Z –
Рассматривали ли вы использование набора символов 5 бит, если вам нужны только заглавные буквы с английского алфавита? –