Có một cơ sở hạ tầng cây tìm kiếm nhị phân có thể tránh trở nên cân bằng xấu?


7

Đây là câu hỏi tiếp theo của " Không phải tất cả các cây Đỏ-Đen đều cân bằng? " Và " Cây AVL không cân bằng trọng lượng? ".

Định nghĩa: Đối với cây gốc và đỉnh , hãy để là số nút trong cây con bên trái từ và là số nút trong cây con gốc tại . Chúng ta nói rằng là -balanced , với , nếu cho mỗi nút v \ trong V (T) sự bất bình đẳng \ mu \ le \ frac {L_T (v ) + 1} {N_T (v) + 1} \ le 1 - \ mu giữ và nếu \ mu là đối tượng tối thiểu đối với việc giữ bất đẳng thức này.TvV(T)LT(v)vNT(v)vTμ0μ12vV(T)

μLT(v)+1NT(v)+11-μ
μ

(Đây là những hình như còn gọi là trọng lượng cân bằng cây trong một số tài liệu.) Một cây đó là μ' -balanced đối với một số μ'<μ , chúng tôi sẽ nói là μ-mất cân bằng .

Các bài đăng được liên kết ở trên về cơ bản cho thấy rằng không phải cây AVL , hay cây Đỏ-Đen , đều có thể được đảm bảo là μ cân bằng cho bất kỳ μ>0 : nghĩa là, đối với bất kỳ μ , người ta có thể cung cấp một chuỗi các đầu vào được chèn để cây kết quả là μ -imbalanced.

Câu hỏi. Có bất kỳ cấu trúc cây tìm kiếm nhị phân, với các đặc điểm thông thường của Ôi(đăng nhậpn) chèn và thời gian tìm kiếm, và một số m>0 , như vậy cây sẽ luôn là μ -balanced đối với một số μ>m ?


1
Tôi muốn nói rằng lý do tại sao -balanced cây hiếm khi được sử dụng: họ yêu cầu quá nhiều chi phí khi cân bằng chúng, với mức tăng ít. Xem xét ví dụ trong câu trả lời này : Cây có chiều cao . Cây con bên trái của nó có nút và cây con bên phải của nó có nút, do đó, tổng thể nó có . Nếu chúng ta đặt cùng số nút vào một cây cân bằng hoàn hảo, nó vẫn sẽ có chiều cao . Vì chiều cao là yếu tố quyết định chi phí vận hành, chúng tôi không thu được gì, chúng tôi chỉ dành nhiều thời gian hơn để cân bằng lại. μ2k+22k-122k+1-122k+1+2k-12k+2
Petr Pudlák

@ PetrPudlák: Thật vậy, khi đọc các cây tìm kiếm nhị phân có số dư giới hạn (Nievergelt + Reingold) trong câu trả lời của Aryabhata, tôi bị choáng bởi ý tưởng tìm kiếm bằng cách vượt qua toàn bộ cấu trúc dữ liệu. Tôi không chắc trong những trường hợp nào người ta có thể muốn làm một việc như vậy, điều đó sẽ không đề xuất cấu trúc dữ liệu đơn giản hơn hoặc phức tạp hơn. Nếu việc tìm đường dẫn đến phần tử tìm kiếm là dễ dàng, như trong việc triển khai BST thông thường trên một tập hợp có thứ tự, thì chiều cao nhưng không phải là vấn đề trọng lượng; nhưng là một nhà tổ hợp tôi tò mò.
Niel de Beaudrap

Câu trả lời:


6

Có, tôi tin là có (mặc dù tôi không nhớ chi tiết của bài báo để xác nhận).

Đây là bài báo gốc xử lý vấn đề đó:

Nievergelt J. và Reingold EM, " Cây tìm kiếm nhị phân cân bằng giới hạn ", Kỷ yếu của hội nghị chuyên đề ACM hàng năm lần thứ tư về Lý thuyết điện toán, trang 137--142, 1972

Đây là một trang về cây cân bằng trọng lượng mà dường như có thêm một số thông tin và đề cập đến việc sử dụng chúng trong các ngôn ngữ chức năng.

Bài viết này: Trên trung bình số lượng hoạt động cân bằng lại trong cây cân bằng trọng lượng , dường như đang điều tra số lượng hoạt động tái cân bằng trong cây cân bằng trọng lượng.

Tôi dường như cũng nhớ rằng một trong những cuốn sách Nghệ thuật của Knuth có liên quan đến bài báo Reingold ở trên (có lẽ trong các bài tập).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.