8x(파일의 문자 수)
가 됨고정된 크기의 코드
로 표현파일 압축(file compression)
허프만 압축
: 파일에 빈번히 나타나는 문자에는 짧은 이진코드를, 드물게 나타나는 문자에는 긴 이진 코드를 할당접두부 특성(prefix property)
을 가짐1) 각 문자별로 단말 노드를 만들고, 그 문자의 빈도수를 노드에 저장
2) n개의 노드의 빈도수에 대한 우선 순위 큐Q를 생성
3) 빈도수가 가장 적은 2개의 노드를 Q에서 제거해 새 노드N을 만듦
N의 빈도수 = A의 빈도수 + B의 빈도수
4) 새 노드 N을 Q에 삽입
5) Q에 노드 수가 1이 될 때 까지 2~4를 반복
왼쪽은 0
을, 오른쪽은 1
을 부여A
가 가장 짧은 코드O(n)
O(n)
O(logn)
O(nlogn)
O(nlogn)