Compressão de String

5 respostas
Ruffles

olá galera… tenho uma tabela de frequência de ocorrência de caracter de uma string e tou em dúvida de qual seria melhor maneira de atribuir um valor binário para cada caracter, tentarei exemplificar…
a=10,b=5,c=3,d=2;
então, no intuíto de comprimir o tamanho da string e nao escrever “a” 10 vezes, como faria para substituir a ocorrencia de “a” por uma sequencia de bits… ex: a=01, em binário?, vale tb para os outros caracters.
vlw :stuck_out_tongue:

5 Respostas

T

Basicamente você quer implementar a compressão pelo algoritmo de Huffman, não?

http://www.nist.gov/dads/HTML/huffmanCoding.html

cv1

Usando as APIs de compactacao que ja vem no proprio Java?

Ruffles

isso mesmo o algoritmo é o de huffman, é um trabalho acadêmico e é exigido trabalhar o algoritmo em todas a partes… estrutura de dados II

T

É óbvio que você vai ter de:

  • Construir a árvore binária para pôr os caracteres e suas respectivas freqüências, para poder determinar as codificações em bits de cada um dos caracteres;
  • Pegar os caracteres e converter em seqüências de bits;
  • Pegar as seqüências de bits e converter em bytes.

A primeira parte é a que você tem de fazer direito, para o seu trabalho acadêmico. Não é difícil - use uma árvore binária tradicional - mas você precisa pensar um pouco.

A segunda parte é boba.

A terceira parte é só trabalhosa - aí você vai ter de aprender a se virar com aqueles operadores de "shift" (&lt&lt&lt) , "or" (|) e "and" (&) do Java.

Se isso é lição de casa, é só procurar na Internet que alguém já deve ter feito isso.

Ruffles

vlw, velho… :roll:

Criado 6 de fevereiro de 2007
Ultima resposta 7 de fev. de 2007
Respostas 5
Participantes 3