Cây van Emde Boas

cây van Emde Boas
Thể loại cây
Năm phát minh 1977
Phát minh bởi Peter van Emde Boas
Độ phức tạp
theo ký hiệu O lớn
Bộ nhớ O(M)
Tìm kiếm O(log log M)
Chèn O(log log M)
Xóa O(log log M)

Cây van Emde Boas (hay hàng đợi ưu tiên van Emde Boas), còn gọi là cây vEB, là một cấu trúc dữ liệu cây để biểu diễn mảng liên hợp có khóa là số tự nhiên m bit. Nó thực hiện mỗi thao tác trong thời gian O(log m). Cấu trúc dữ liệu này được tìm ra bởi một nhóm lãnh đạo bởi Peter van Emde Boas năm 1977.[1]

Các thao tác

[sửa | sửa mã nguồn]

Cây vEB cho phép thực hiện các thao tác của mảng liên hợp có thứ tự, bao gồm:[2]

  • Chèn: chèn một cặp khóa/giá trị với 1 khóa m bit
  • Xóa: xóa một cặp khóa/giá trị với 1 khóa cho trước
  • Tìm: tìm giá trị liên hợp với 1 khóa cho trước
  • Tìm phần tử sau: tìm cặp khóa/giá trị có khóa nhỏ nhất lớn hơn hoặc bằng k
  • Tìm phần tử trước: tìm cặp khóa/giá trị có khóa lớn nhất nhỏ hơn hoặc bằng k.

Phương thức hoạt động

[sửa | sửa mã nguồn]
Ví dụ cây van Emde Boas
Một cây Van Emde Boas cùng với cấu trúc hỗ trợ của nút gốc sau khi đã chèn 1, 2, 3, 5, 8 và 10.

Cho đơn giản, giả sử log2 m = k với ksố tự nhiên. Giả sử M=2m. Một cây vEB T cho tập hợp {0,..., M-1} có nút gốc chứa 1 mảng mang tên T.con có kích thước M1/2. T.con[i] là con trỏ đến cây vEB con lưu trữ các giá trị trong khoảng {iM1/2,...,(i+1)M1/2-1}. Ngoài ra T chứa hai giá trị T.minT.max cùng với một cây vEB hỗ trợ T.aux.

Dữ liệu trong cây vEB được lưu trữ như sau. Giá trị nhỏ nhất được lưu trong T.min và giá trị lớn nhất được lưu trong T.max. Hai giá trị này không được lưu tại bất kì nơi nào khác trong cây. Nếu T là rỗng, ta quy ước T.max=-1T.min=M. Các giá trị còn lại được lưu trong các cây con. Giá trị x được lưu trong cây con T.con[i] trong đó . Cây hỗ trợ T.aux lưu trữ các cây con khác rỗng. Nghĩa là T.aux chứa giá trị j khi và chỉ khi T.con[j] là khác rỗng.

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ Peter van Emde Boas, R. Kaas, and E. Zijlstra: Design and Implementation of an Efficient Priority Queue (Mathematical Systems Theory 10: 99-127, 1977)
  2. ^ Gudmund Skovbjerg Frandsen: Dynamic algorithms: Course notes on van Emde Boas trees (PDF) Lưu trữ 2015-09-23 tại Wayback Machine (University of Aarhus, Department of Computer Science)
Chúng tôi bán
Bài viết liên quan
Rung chấn có phải lựa chọn duy nhất của Eren Jeager hay không?
Rung chấn có phải lựa chọn duy nhất của Eren Jeager hay không?
Kể từ ngày Eren Jeager của Tân Đế chế Eldia tuyên chiến với cả thế giới, anh đã vấp phải làn sóng phản đối và chỉ trích không thương tiếc
Top quán kem ngon nổi tiếng TP.HCM giải nhiệt cuối tuần
Top quán kem ngon nổi tiếng TP.HCM giải nhiệt cuối tuần
Kem là một trong những món ăn yêu thích của mọi thế hệ. Đó là lý do mà thế giới kem tại thị trường Việt Nam phát triển rất nhanh và nhiều thương hiệu lớn thế giới cũng có mặt. Dưới đây là top những thương hiệu đang dẫn đầu tại Việt Nam.
Viết cho những nuối tiếc của Nanami - Jujutsu Kaisen
Viết cho những nuối tiếc của Nanami - Jujutsu Kaisen
Nanami là dạng người sống luôn đặt trách nhiệm rất lớn lên chính bản thân mình, nên cái c.hết ở chiến trường ắt hẳn làm anh còn nhiều cảm xúc dang dở
Xác suất có thật sự tồn tại?
Xác suất có thật sự tồn tại?
Bài dịch từ "Does probability exist?", David Spiegelhalter, Nature 636, 560-563 (2024)