„Huffman-kódolás” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Unsigned (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
27. sor:
 
==Példa==
[[Fájl:Huffman 1.JPG|bélyegkép|jobbra|320px|Az <i>''a)</i>'', <i>''b)</i>'', <i>''c)</i>'', <i> ''d)</i>'' ábrák]]
[[Fájl:Huffman 2.JPG|bélyegkép|jobbra|320px|Az <i>''e)</i>'' ábra]]
Az a, l, m, f, t és a szóköz (jelölése: <math>\sqcup</math>) karaktereket szeretnénk kódolni a Huffman-algoritmussal, megadva ezek gyakoriságát az alábbiak szerint:
 
52. sor:
7, 8, 10, 15, 20 40
 
Az első két elemből felépítjük az <i>''a)</i>'' ábrán látható bináris fát. Ezt a két számot kihagyva, az összegüket beszúrva, a következőt kapjuk:
 
10, 15, 15, 20, 40
58. sor:
Itt most eldönthetjük, hogy az első vagy a második 15 felel meg a már létező csúcsnak. Tekintsük úgy, hogy az első (Ez a választás nem befolyásolja az eredmény hatékonyságát, pontosabban a kapott kódot igen, de a hatékonyságot nem).
Az újonnan kapott bináris fa a <i>''b)</i>'' ábrán látható.
 
A következő sorozat:
64. sor:
15, 20, 25, 40.
 
Az innen kapott fa a <i>''c)</i>'' ábrán látható. (Észrevehetjük, hogy az itt szereplő 15-nek új csúcs felel meg.)
 
Innen kapjuk, hogy a sorozat most már:
70. sor:
25, 35, 40,
 
és a megfelelő bináris fát a <i>''d)</i>'' ábra mutatja.
 
Ezek után az utolsó lépésre marad a következő sorozat:
76. sor:
40, 60.
 
Az eredmény, amely már tartalmazza az élekhez rendelt címkéket is, az <i>''e)</i>'' ábrán található.
 
A fáról leolvashatjuk a megfelelő kódokat: