Nếu bạn có cấu trúc dữ liệu cây tìm kiếm nhị phân cân bằng với thuộc tính cây tìm kiếm ngón tay (việc tìm kiếm một mục vị trí sẽ mất thời gian ), chẳng hạn như cây splay, thì nếu bạn chèn một chuỗi đã sắp xếp trong số mục vào đó, tổng thời gian để chèn sẽ là .dO(logd)kO(klog(n/k))
Bây giờ, giả sử rằng bạn muốn hỗ trợ chèn, hợp nhất phá hủy và tìm kiếm. Đối với các phần chèn và tìm kiếm, chỉ cần sử dụng các hoạt động của cây tìm kiếm hiện có. Để hợp nhất, luôn luôn hợp nhất cây nhỏ hơn thành cây lớn hơn và sử dụng một giao dịch theo thứ tự của cây nhỏ hơn để có được thứ tự sắp xếp của nó trong thời gian tuyến tính. Sau đó, chèn từng phần tử của cây nhỏ hơn vào cây lớn hơn theo thứ tự được sắp xếp này.
Nếu một phần tử được chèn sau đó được hợp nhất thành một chuỗi các cây lớn hơn với kích thước thì lượng thời gian để chèn và hợp nhất (chỉ tính một phần của tổng thời gian hợp nhất) sẽ là , , , thêm vào một chuỗi kính thiên văn vào . Vì vậy, nếu người ta sử dụng sơ đồ khấu hao trong đó tổng thời gian logarit này cho một chuỗi hợp nhất tiềm năng được tính cho hoạt động chèn cho , thì chúng ta vẫn nhận được thời gian khấu hao cho mỗi lần chèn hoặc tìm kiếm và chỉ khấu hao thời gian trên mỗi hợp nhất.xn1,n2,…O ( log n 1 ) O ( log ( n 2 / n 1 ) ) ... O ( log n ) x O ( log n ) O ( 1 )xO(logn1)O(log(n2/n1))…O(logn)xO(logn)O(1)
Xóa làm phức tạp phân tích này, nhưng không nhiều. Một cách để xử lý chúng là xóa một nửa lười biếng, trong đó một mục bị xóa được xóa khỏi cây của nó nhưng không bị xóa khỏi số lượng vật phẩm trong cây này, để khi chúng ta quyết định hai cây nào nhỏ hơn hoặc lớn hơn chúng ta đếm tất cả các vật phẩm đã từng có trên cây. Sau đó, trongO ( log n )nO(logn)thời gian cho mỗi thao tác phải là tổng số mục đã từng được chèn hoặc xóa thay vì số hiện tại. Nếu hai số này phát triển quá xa nhau, bạn có thể tạo một bản cập nhật điều chỉnh lại tất cả số đếm thành số thực của chúng, đặt lại cấu trúc dữ liệu về trạng thái không có mục bị xóa; thời gian khấu hao cho bản cập nhật này có thể được tính vào các thao tác xóa mà bạn phải thực hiện để có được các số cách xa nhau. Hoặc có thể bạn có thể làm cho việc khấu hao hợp nhất hoạt động trực tiếp với việc xóa không lười biếng, nhưng tôi chưa tìm ra chi tiết của phần đó.