Veja o código em funcionamento: https://joaopaiva.github.io/ShannonFanoJavascript/SF.html
O algoritmo de Shannon-Fano trata-se de um algoritmo de codificação de entropia, uma vez que efetua uma compressão sem perdas, e corresponde ao melhoramento da eficiência de representação da informação digital, sendo independente do tipo de dados a comprimir, representando uma codificação da informação com códigos de comprimento variável. Baseia-se na construção de uma árvore binária, de acordo com uma abordagem top-down.
Digite o texto a ser compactado e clique em compactar. O resultado é apresentado em código binário.
Após a compactação, é gerado um dicionário/mapa com cada caractere e seu respectivo código binário. Ao inserir o resultado da compactação, processo é feito da forma inversa, substituindo cada código binário pelo seu respectivo valor.