Les codes générés par l'algorithme de Huffman possèdent les mêmes caractéristiques que ceux de Shannon-Fano.

 

L’algorithme de Huffman se décompose en différentes étapes :

·                 Faire la liste des symboles et les trier par probabilité décroissante : ils constituent les noeuds d'origine de l'arbre de Huffman.

·                 Prendre les deux noeuds de plus faible fréquence et créer un nœud parent pour ces deux nœuds.

·                 Affecter la somme des deux fréquences au nœud parent.

·                 Affecter les codes 0, 1 respectivement aux deux branches de l'arbre.

·                 Répéter l'étape 2 jusqu'à ce qu'il ne reste qu'un seul noeud (de probabilité 1).