Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Huffman Coding (Mã hoá Huffman)

Huffman Coding là một kỹ thuật nén dữ liệu để giảm kích thước của nó mà không làm mất
bất kỳ chi tiết nào. Nó được phát triển lần đầu tiên bởi David Huffman.
Mã hóa Huffman thường hữu ích để nén dữ liệu trong đó có các ký tự xuất hiện thường
xuyên.

Giả sử chuỗi bên dưới được gửi qua mạng.

Mỗi ký tự chiếm 8 bit. Có tổng cộng 15 ký tự trong chuỗi trên. Vì vậy, tổng số 8 * 15 =
120bit được yêu cầu để gửi chuỗi này.
Sử dụng kỹ thuật Mã hóa Huffman, chúng ta có thể nén chuỗi xuống kích thước nhỏ hơn.
Bước 1: Tính tần số của mỗi ký tự trong chuỗi.

Bước 2: Sắp xếp các ký tự theo thứ tự tần số tăng dần. Chúng được lưu trữ trong hàng đợi ưu
tiên.

Bước 3: Loại bỏ hai phần tử nhỏ nhất khỏi hàng ưu tiên. Sau đó, hợp nhất hai nút đó và chèn
lại nút gốc mới vào hàng ưu tiên.
Bước 4: Gán 0 cho nhánh bên trái và gán 1 cho nhánh bên phải

Để gửi chuỗi trên qua mạng, chúng ta phải gửi cây cũng như mã nén ở trên. Tổng kích thước
được đưa ra bởi bảng dưới đây.

Độ phức tạp của mã hóa Huffman


Độ phức tạp về thời gian để mã hóa từng ký tự duy nhất dựa trên tần số của nó là O(nlog n).
Việc trích xuất tần số tối thiểu từ hàng đợi ưu tiên diễn ra 2*(n-1)nhiều lần và độ phức tạp
của nó là O(log n). Do đó độ phức tạp tổng thể là O(nlog n).

You might also like