.3 Các bước sử dụng thuật toán Dijkstra

Một phần của tài liệu Đồ án giải thuật chia để trị (Trang 27 - 28)

Thuật toán kết thúc tại thời điểm z V (T). Đường đi ngắn nhất từ a đến z có độ dài L (z) = 14.

1.3.4 Thuật tốn Huffman

Trong khoa học máy tính và lý thuyết thơng tin, mã Huffman là một thuật tốn mã hóa dùng để mã hóa dữ liệu. Nó dựa trên bảng tần suất xuất hiện các kí tự cần mã hóa để xây dựng một bộ mã nhị phân cho các kí tự đó sao cho dung lượng (số bít) sau khi mã hóa là nhỏ nhất.

Thuật tốn mã hóa Huffman đưa những ký tự được xuất hiện nhiều về dạng biểu diễn tổn thất ít bộ nhớ nhất, cịn những ký tự ít xuất hiện sẽ phải biểu diễn dưới dạng dài hơn. Vấn đề cần phải giải quyết là tìm đ ợc một bảng mãƣ hóa ở dạng tiền tố sao cho chiều dài trung bình của bảng mã ấy là nhỏ nhất có thể. Để giải bài tốn xây dựng bảng mã ở dạng tiền tố, có thể sử dụng cây nhị phân, đ a các chữ cái về vị trí các nútƣ

lá.

Tính chất thuật tốn Huffman:

- Nhánh trái tương ứng với mã hóa bít “0”.

- Nhánh phải tương ứng với mã hóa bít “1”.

- Các nút có tần số thấp nằm ở xa gốc -> mã bít dài.

- Các nút có tần số cao nằm ở gần gốc -> mã bít ngắn.

- Số nút của cây: (2n-1)

Thuật toán Huffman:

- Xây dựng bảng thống kê tần số xuất hiện của các ký tự cần mã hóa - Mỗi phần tử được xem như là đỉnh của một cây

o Chọn 2 cây có trọng số bé nhất ghép thành một cây mới - Từ đỉnh duyệt cây

o Nếu về bên trái chọn bit 0 o Về phải chọn bit 1

o Đến lá thì dãy bit đã duyệt chính là mã mới của ký tự Ví dụ: Với chuỗi đầu vào có tần số xuất hiện là

Một phần của tài liệu Đồ án giải thuật chia để trị (Trang 27 - 28)