Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Dưới đây là bài giảng Phân tích thiết kế giải thuật: Chương 5 - Heap nhị thức. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về các heap hợp nhất được; thời gian chạy của các thao tác lên heaps hợp nhất được; định nghĩa cây nhị thức; đặc tính của cây nhị thức; tính chất của heap nhị thức và một sô kiến thức khác. | 7.3.2004 Chương 5: Heap nhị thức Các heap hợp nhất được Một heap hợp nhất được (mergeable heap) là một cấu trúc dữ liệu hỗ trợ năm thao tác sau (gọi là các thao tác heap hợp nhất được). MAKE-HEAP() tạo và trả về một heap trống. INSERT(H, x) chèn nút x, mà trường key của nó đã được điền, vào heap H . MINIMUM(H) trả về một con trỏ chỉ đến nút trong heap H mà khóa của nó là nhỏ nhất. EXTRACT-MIN(H) tách ra nút có khóa nhỏ nhất khỏi H, và trả về một con trỏ chỉ đến nút đó. UNION(H1, H2) tạo và trả về một heap mới chứa tất cả các nút của các heaps H1 và H2 . Các heaps H1 và H2 sẽ bị hủy bởi thao tác này. 7.3.2004 Chương 5: Heap nhị thức Thời gian chạy của các thao tác lên heaps hợp nhất được n là số nút của heap Thủ tục heap heap heap nhị phân nhị thức Fibonacci (worst-case) (worst-case) (khấu hao) MAKE-HEAP (1) (1) (1) INSERT (lg n) O(lg n) (1) MINIMUM (1) O(lg n) (1) EXTRACT-MIN (lg n) (lg n) O(lg n) UNION (n) O(lg n) (1) DECREASE-KEY (lg n) (lg n) (1) DELETE (lg n) (lg n) O(lg n) 7.3.2004 Chương 5: Heap nhị thức Heap nhị thức Các thao tác khác DECREASE-KEY(H, x, k) gán vào nút x trong heap H trị mới k của khóa, k nhỏ hơn hay bằng trị hiện thời của khóa. DELETE(H, x) xóa nút x khỏi heap H. Nhận xét: Heap nhị thức không hổ trợ thao tác SEARCH hữu hiệu. Do đó, các thao tác DECREASE-KEY và DELETE cần một con trỏ đến nút cần được xử lý. 7.3.2004 Chương 5: Heap nhị thức Định nghĩa cây nhị thức 7.3.2004 Chương 5: Heap nhị thức Định nghĩa cây nhị thức Cây nhị thức Bk với k = 0, 1, 2, là một cây có thứ tự được định nghĩa đệ quy: Cây nhị thức B0 gồm một nút duy nhất. Cây nhị thức Bk gồm hai cây nhị thức Bk - 1 được liên kết với nhau theo một cách nhất định: Nút gốc của cây này là con bên trái nhất của nút gốc của cây kia. 7.3.2004 Chương 5: Heap nhị thức Đặc tính của cây nhị thức Lemma (Đặc tính của một cây nhị thức) Cây nhị thức Bk có các tính chất sau: 1. có 2k nút, 2. chiều cao của cây là k, 3. có đúng nút tại độ sâu i với i = 0, . | 7.3.2004 Chương 5: Heap nhị thức Các heap hợp nhất được Một heap hợp nhất được (mergeable heap) là một cấu trúc dữ liệu hỗ trợ năm thao tác sau (gọi là các thao tác heap hợp nhất được). MAKE-HEAP() tạo và trả về một heap trống. INSERT(H, x) chèn nút x, mà trường key của nó đã được điền, vào heap H . MINIMUM(H) trả về một con trỏ chỉ đến nút trong heap H mà khóa của nó là nhỏ nhất. EXTRACT-MIN(H) tách ra nút có khóa nhỏ nhất khỏi H, và trả về một con trỏ chỉ đến nút đó. UNION(H1, H2) tạo và trả về một heap mới chứa tất cả các nút của các heaps H1 và H2 . Các heaps H1 và H2 sẽ bị hủy bởi thao tác này. 7.3.2004 Chương 5: Heap nhị thức Thời gian chạy của các thao tác lên heaps hợp nhất được n là số nút của heap Thủ tục heap heap heap nhị phân nhị thức Fibonacci (worst-case) (worst-case) (khấu hao) MAKE-HEAP (1) (1) (1) INSERT (lg n) O(lg n) (1) MINIMUM (1) O(lg n) (1) EXTRACT-MIN (lg n) (lg n) O(lg n) UNION (n) O(lg n) (1) DECREASE-KEY (lg n) (lg n) (1) DELETE (lg .