Home > Zlib
library에서 사용하는 알고리즘 > Huffman Coding Algorithm
Huffman Coding Algorithm
Simple Example |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
‘ABCABCAACDE’라는
문자가 있다.
위의
표와 같이 데이터에 따른 코드가 할당된
경우 문자열은 ‘01101110110111010111110111111’로 표현된다. 열한개의 문자열이 총
29비트로 표현되는 것이다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Huffman Tree |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
허프만 트리를 만들기 위해서는 0~255까지의 데이터가 몇 개나 있는지 그 빈도수를 세어야 한다. 그리고 가장 수가 적은 것끼리 묶어서 트리를 구성하기 시작한다. < 예제 소스 >
< 과정 1 > 다음과 같이 빈도수가 나왔다고 가정해보자.
< 과정 2 > 빈도수가 가장 작은 B와 C를 하나의 노드로 묶는다.
< 과정 3 > 다시 가장 빈도수가 적은 두 노드를 선택한다. B+C노드와 D를 묶어준다.
< 과정 4> 이번에는 A와 E가 가장 빈도수가 작으므로 두 개를 묶어준다.
< 과정 5 > 다시 F와 B+C+D 노드를 묶어준다.
< 과정 6 > 마지막으로 남은 두 개의 노드를 묶어 주면 허프만 트리가 완성된다.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
< 결과 > 허프만 트리를 정리하면 다음과 같은 코드 값을 얻을 수 있다.
|