2013-04-14 28 views

Trả lời

4

Thực ra Câu trả lời là có.

Sự khác biệt chính giữa B + -trees và đồng bằng B-cây là các giá trị thực sự được lưu trữ trong lá cho cũ, trong khi sau này bạn sẽ tìm thấy giá trị trong mỗi nút. Do đó B + -trees cho phép bạn lưu trữ dữ liệu một cách gần như liên tục, mỗi lá chứa một phần tiếp giáp của toàn bộ dữ liệu được sắp xếp. Điều này không thể đúng đối với các cây B: một nút bên trong sẽ chứa một số phần tử, nhưng chúng sẽ không tiếp giáp với nhau. toàn bộ tập dữ liệu được sắp xếp.

Thuộc tính này là cần thiết để tải hàng loạt: quá trình đó hoạt động trên một tập dữ liệu đã được sắp xếp bằng cách cắt nó thành các mảng sẽ tạo thành lá của B + -tree. Vì vậy, đối với một cây B có vẻ như nó không thể làm việc.

Nếu chúng ta có thể sắp xếp dữ liệu theo cách nhóm các phần tử nút bên trong với nhau, thì vấn đề được giải quyết. Để làm được điều đó, người ta phải biết trước các yếu tố sẽ được nhóm lại như thế nào. Điều này hóa ra là có thể.

Hãy gọi o (thứ tự) số lượng tối thiểu trẻ em trong một nút (phù hợp với định nghĩa ban đầu của đơn đặt hàng B-tree). Chúng tôi coi nút gốc ở giai đoạn cao nhất của cây và lá ở mức thấp nhất (giai đoạn 0). Đối với một cây cân bằng, tất cả lá cây sẽ thực sự ở cùng một giai đoạn.

Giai đoạn k của cây nhóm các phần tử được đặt cách nhau bởi ít nhất o yếu tố trong giai đoạn k-1. Sau khi sắp xếp ban đầu, chúng ta phải trích xuất các phần tử từ mảng được sắp xếp, tạo thành giai đoạn 0 và nhóm chúng thành một mảng khác để xây dựng giai đoạn 1, sau đó thực hiện lại với mảng đó vào một mảng mới cho giai đoạn 2 và lặp lại quy trình cho đến khi có ít hơn o yếu tố trong mảng mới nhất, đây sẽ là giai đoạn gốc. Từ đó trở đi, người ta có thể xây dựng các cây trực tiếp từ giai đoạn thiết lập:

  • chia từng giai đoạn trong mảng của o yếu tố,
  • mảng xây dựng chỉ số để liên kết các nút để subnodes
  • xây dựng mỗi nút như mảng mảng giá trị mảng * tương ứng

Cây kết quả sẽ không nhất thiết phải cân bằng tốt. Nó phụ thuộc vào số lượng mục nhập trong tập dữ liệu và o. Nó sẽ có thể điều chỉnh khoảng thời gian được sử dụng trong việc xây dựng các giai đoạn để có một cây phân tán tốt hơn mặc dù.

Tất cả trong tất cả công việc cần thiết để tải hàng loạt cây B là tẻ nhạt hơn so với B +-tree, nhưng có thể.

Các vấn đề liên quan