|
| 1 | +import type { Locale } from '@i18n/translations' |
| 2 | + |
| 3 | +const descriptions: Record<Locale, string> = { |
| 4 | + en: `Huffman Coding |
| 5 | +
|
| 6 | +Huffman Coding is a greedy algorithm for lossless data compression. It assigns shorter binary codes to frequent characters and longer codes to rare ones, reducing the total number of bits needed to represent the data. |
| 7 | +
|
| 8 | +How it works: |
| 9 | +1. Count how often each character appears |
| 10 | +2. Create a leaf node per character and put them in a min-priority queue |
| 11 | +3. Repeatedly remove the two lowest-frequency nodes and merge them under a new parent whose frequency is their sum |
| 12 | +4. When one node remains, use it as the tree root |
| 13 | +5. Assign codes by walking the tree: left = 0, right = 1 |
| 14 | +
|
| 15 | +Why it works: |
| 16 | + No code is a prefix of another, so the encoded bitstream decodes unambiguously. The greedy merge guarantees an optimal prefix code for the given frequencies. |
| 17 | +
|
| 18 | +Time Complexity: |
| 19 | + Best: O(n log n) |
| 20 | + Average: O(n log n) |
| 21 | + Worst: O(n log n) |
| 22 | +
|
| 23 | +Space Complexity: O(n) |
| 24 | +
|
| 25 | +Properties: |
| 26 | + - Lossless: the original data is recovered exactly |
| 27 | + - Optimal among prefix codes for a known frequency distribution |
| 28 | + - Used in DEFLATE (ZIP, gzip, PNG), JPEG, and MP3 |
| 29 | +
|
| 30 | +Invented by David A. Huffman in 1952 while he was a student at MIT, it remains a cornerstone of modern compression.`, |
| 31 | + es: `Codificación de Huffman |
| 32 | +
|
| 33 | +La Codificación de Huffman es un algoritmo voraz para compresión de datos sin pérdida. Asigna códigos binarios más cortos a los caracteres frecuentes y más largos a los raros, reduciendo la cantidad total de bits necesarios para representar los datos. |
| 34 | +
|
| 35 | +Cómo funciona: |
| 36 | +1. Contar cuántas veces aparece cada carácter |
| 37 | +2. Crear un nodo hoja por carácter y ponerlos en una cola de prioridad mínima |
| 38 | +3. Quitar repetidamente los dos nodos de menor frecuencia y fusionarlos bajo un nuevo padre cuya frecuencia sea la suma |
| 39 | +4. Cuando quede un solo nodo, usarlo como raíz del árbol |
| 40 | +5. Asignar códigos recorriendo el árbol: izquierda = 0, derecha = 1 |
| 41 | +
|
| 42 | +Por qué funciona: |
| 43 | + Ningún código es prefijo de otro, así que el flujo de bits codificado se decodifica sin ambigüedad. La fusión voraz garantiza un código de prefijo óptimo para las frecuencias dadas. |
| 44 | +
|
| 45 | +Complejidad Temporal: |
| 46 | + Mejor: O(n log n) |
| 47 | + Promedio: O(n log n) |
| 48 | + Peor: O(n log n) |
| 49 | +
|
| 50 | +Complejidad Espacial: O(n) |
| 51 | +
|
| 52 | +Propiedades: |
| 53 | + - Sin pérdida: los datos originales se recuperan exactamente |
| 54 | + - Óptimo entre los códigos de prefijo para una distribución de frecuencias conocida |
| 55 | + - Usado en DEFLATE (ZIP, gzip, PNG), JPEG y MP3 |
| 56 | +
|
| 57 | +Inventado por David A. Huffman en 1952 cuando era estudiante en el MIT, sigue siendo un pilar de la compresión moderna.`, |
| 58 | +} |
| 59 | + |
| 60 | +export default descriptions |
0 commit comments