본문 바로가기

리얼월드 알고리즘2

LZW 압축 (C++ 구현) References 리얼월드 알고리즘 Contents LZW 인코딩/디코딩 과정 LZW 디코딩에서 코너 케이스 C++ 구현 지난 글에서 다루었던 허프만 코딩은 압축하고자하는 아이템의 빈도에 따라서 인코딩의 길이를 다르게하여 압축하는 방식이었습니다. 2021.08.05 - [Data Structure & Algorithm/알고리즘] - 허프만 코딩 (C++ 구현) 허프만 코딩 (C++ 구현) References 리얼월드 알고리즘 허프만 코딩 허프만 코드는 (최소)우선순위 큐와 이진 트리로 만들 수 있는 유일 접두어 코드를 의미합니다. 1951년 데이비드 허프만(David A. Huffman)이 25살 때 고안한 방 junstar92.tistory.com 즉, 자주 나오는 아이템의 경우에는 짧은 인코딩으로 .. 2021. 8. 29.
허프만 코딩 (C++ 구현) References 리얼월드 알고리즘 허프만 코딩 허프만 코드는 (최소)우선순위 큐와 이진 트리로 만들 수 있는 유일 접두어 코드를 의미합니다. 1951년 데이비드 허프만(David A. Huffman)이 25살 때 고안한 방법으로, 허프만 코딩은 기호들의 빈도를 활용하여 정보를 압축하는 무손실 압축 시스템입니다. 허프만 코딩은 우선순위 큐로 인코딩을 시작하며, 큐의 원소는 이진 트리입니다. 이 이진 트리의 리프노드들은 문자와 텍스트에서 그 문자의 빈도를 가지고 있습니다. 그럼 어떻게 허프만 코드로 변환이 되는지 단어 'effective'를 통해서 살펴보겠습니다. 인코딩 과정 허프만 코딩은 먼저 각 문자의 빈도를 측정하고, 문자와 빈도를 데이터로 갖는 이진 트리를 원소로 갖는 우선순위 큐로 시작합니다. .. 2021. 8. 5.