mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-23 00:14:21 +00:00
14 lines
795 B
Markdown
14 lines
795 B
Markdown
|
# Algoritmo di Huffman
|
||
|
|
||
|
L'_Algoritmo di Huffman_ è un **algoritmo greedy** per la **costruzione di un albero di decodifica**.
|
||
|
|
||
|
## Funzionamento
|
||
|
|
||
|
1. Costruisco **un albero** (con un solo nodo) **per ogni elemento dell'alfabeto**.
|
||
|
2. Associo ad **ogni albero la frequenza dell'elemento** da cui è stato creato, per poi inserire tutti gli elementi in una coda con priorità.
|
||
|
3. Finchè non ho **un albero solo**:
|
||
|
1. Estraggo dalla coda i **due alberi con frequenza minore**.
|
||
|
2. **Li rendo fratelli**, creando un nuovo nodo in cui sono uno figlio destro e uno figlio sinistro.
|
||
|
3. Associo al nuovo nodo la **somma delle frequenze dei due alberi**, e inserisco il nuovo albero nella coda.
|
||
|
|
||
|
> È molto raro che venga un albero "dritto"; se succede, probabilmente c'è qualcosa che non va.
|