Algoritmo de Huffman · Voraz
Comprime un libro con Huffman
Elige un libro de Project Gutenberg. Contaremos cuántas veces aparece
cada letra, construiremos el árbol de Huffman y generaremos un archivo
.suf más ligero.
- 1Elige un libro
- 2Árbol y frecuencias
- 3Archivo .suf
Acepta libros de Project Gutenberg en texto plano (UTF-8).
O elige uno de la biblioteca
6 librosDon Quijote
Miguel de Cervantes Saavedra
Español
2.2 MB
#2000
Pride and Prejudice
Jane Austen
Inglés
772 KB
#1342
Moby Dick; Or, The Whale
Herman Melville
Inglés
1.3 MB
#2701
Frankenstein
Mary Wollstonecraft Shelley
Inglés
449 KB
#84
The Adventures of Sherlock Holmes
Arthur Conan Doyle
Inglés
608 KB
#1661
Alice's Adventures in Wonderland
Lewis Carroll
Inglés
174 KB
#11
- Descargar
- Contar letras
- Cola de prioridad
- Árbol
- Códigos
- Archivo .suf
- Tamaño original
- 2.2 MB 2,206,001 bytes
- Comprimido
- 1.2 MB 1,200,178 bytes
- Ahorro
- 45.6 % queda en 54.4 %
- Bits por letra
- 4.47 entropía 4.43 · ASCII 8
- Símbolos distintos
- 93 185 nodos en el árbol
Árbol de Huffman
Primeros 4 de 22 niveles · camino de e: 0 → 1 → 0 = 010
Letras
93 símbolos| Símbolo | Apariciones | Código |
|---|---|---|
| ␣ | 354,706 16.5 % | 111 |
| e | 221,968 10.3 % | 010 |
| a | 192,727 9.0 % | 000 |
| o | 154,052 7.2 % | 1010 |
| s | 123,238 5.7 % | 0111 |
| n | 108,449 5.0 % | 0011 |
| r | 100,863 4.7 % | 0010 |
| l | 88,518 4.1 % | 11010 |
| d | 85,823 4.0 % | 11001 |
| u | 78,689 3.7 % | 10111 |
| i | 77,759 3.6 % | 10110 |
| t | 61,238 2.9 % | 10000 |
y 81 símbolos más
Archivo listo
don-quijote.suf · 1.2 MB
Así se codifica «En un lugar de la Mancha»
E
11000110111
n0011
␣111
u10111
n0011
␣111
l11010
u10111
g1001000
a000
r0010
␣111
d11001
e010
␣111
l11010
a000
␣111
M11000100010
a000
n0011
c01101
h1001011
a000
Contenido del archivo
Encabezado · 768 bytes
Datos · 1,199,410 bytes
- 00000010011010 01111001 10100111 10011010 01111001 10100111 11000110 11111010
- 00000811110110 00111001 00001000 11101101 01001111 01011110 01011101 10110010
- 00001600110101 00100010 10111110 01101000 11111110 00110101 01111011 01100010
- 00002411010100 00010111 11001010 11111010 00011111 00010001 00000011 01101100
- 00003210110001 00110100 11110011 01001111 00110100 11110011 01001111 00011101
- 00004000010111 11000100 01010110 10010001 01110101 10101111 10010101 11011000
- 00004800010100 01010010 01000001 11000001 00111111 01100000 10000001 00100101
- 00005601100100 10000100 11010011 11001101 00111100 11010011 11001101 00111100
- 00006411010011 11001101 00111110 00110111 11010111 10110001 11001000 01000111
- 00007201101010 01111010 11110010 11101101 10010001 10101001 00010101 11110011
- 00008001000111 11110001 10101011 11011011 00010110 10100000 10111110 01010111
- 00008811010000 11111000 10001000 00011011 01100101 10001001 10100111 10011010
- 00009601111001 10100111 11111110 01101001 11100101 00000000 01110001 00110100
- 00010411110011 01001111 11111100 11010011 11001010 00000100 11110000 10110110
- 00011211010100 01110110 10101111 10010101 11110100 00011111 10100010 00100001
- 00012000000000 11110011 01001111 00110100 11111111 11001101 00111110 00110111
- 00012811010111 11000110 00010101 10111110 01101001 11100110 10011111 11111001
- 00013610100111 01100110 10110101 11110001 00001011 11000101 01110101 11110010
- 00014410111011 00110001 10110001 11100010 10000010 10011010 01111001 10100111
- 00015211111110 01101001 11011001 10010010 10010101 11010101 01001000 10101001
- 00016010100111 10011010 01111111 11100110 10011101 10011010 11010111 11010101
- 00016810110111 00010101 01111100 10101111 10011010 00111111 10001101 01011110
- 00017611011000 10110101 00000101 11110010 10111110 10000111 11000100 01000000
- 00018411011011 00101100 01001101 00111100 11010011 11001101 00111100 11010011
Mostrando los primeros 192 bytes de datos de 1,199,410