Làm thế nào để bạn chứng minh rằng chiều cao dự kiến của cây tìm kiếm nhị phân được xây dựng ngẫu nhiên với nút là ? Có một bằng chứng trong Giới thiệu về thuật toán CLRS (chương 12.4), nhưng tôi không hiểu điều đó.
Làm thế nào để bạn chứng minh rằng chiều cao dự kiến của cây tìm kiếm nhị phân được xây dựng ngẫu nhiên với nút là ? Có một bằng chứng trong Giới thiệu về thuật toán CLRS (chương 12.4), nhưng tôi không hiểu điều đó.
Câu trả lời:
Trước tiên hãy nghĩ về điều này bằng trực giác. Trong trường hợp tốt nhất, cây được cân bằng hoàn hảo; trong trường hợp xấu nhất, cây hoàn toàn không cân bằng:
Bắt đầu từ nút gốc , cây trái này đã hai lần như nhiều hạch ở mỗi độ sâu thành công, như vậy mà cây có n = Σ h i = 0 2 i = 2 h + 1 - 1 nút và chiều cao h (mà là ở trường hợp này 3). Với một toán nhỏ, n ≤ 2 h + 1 - 1 → h ≤ ⌈ log 2 ( n + 1 ) - 1 ⌉ ≤ ⌊ l o , mà là để nói nó có O ( log n ) chiều cao. Đối với cây hoàn toàn không cân bằng, chiều cao của cây chỉ đơn giản là n - 1 → O ( n ) . Vì vậy, chúng tôi có giới hạn của chúng tôi.
i t h i - 1 n - i
Như tôi chắc chắn rằng bạn đã nhận thấy, tôi đã đi chệch hướng một chút so với cách CLRS chứng minh điều này, bởi vì CLRS sử dụng hai kỹ thuật chứng minh tương đối phổ biến gây bối rối cho người không quen biết. Đầu tiên là sử dụng số mũ (hoặc logarit) của những gì chúng ta muốn tìm (trong trường hợp này là chiều cao), làm cho phép toán giải quyết sạch hơn một chút; thứ hai là sử dụng các chức năng chỉ báo (mà tôi sẽ bỏ qua ở đây). CLRS xác định chiều cao theo cấp số nhân là , do đó, tái phát tương tự là . Y n = 2 × tối đa ( Y i - 1 , Y n - i )
Giả sử tính độc lập (rằng mỗi lần rút một phần tử (trong số các phần tử có sẵn) là gốc của một cây con không phụ thuộc vào tất cả các lần rút trước đó), chúng tôi vẫn có mối quan hệ: mà tôi đã thực hiện hai bước: (1) di chuyển bên ngoài vì nó là hằng số và một trong các thuộc tính của tổng là và (2) di chuyển 2 bên ngoài vì nó cũng là hằng số và một trong các thuộc tính của các giá trị dự kiến là . Bây giờ chúng tôi sẽ thay thế1
Tại thời điểm này, CLRS rút ra một bằng chứng cảm ứng trong số ... tiết mục của họ về trải nghiệm toán học, một trong những điều đó bao gồm một danh tính họ để lại cho người dùng chứng minh. Điều quan trọng về sự lựa chọn của họ là thuật ngữ lớn nhất của nó là và nhớ lại rằng chúng tôi đang sử dụng chiều cao theo cấp số nhân sao cho . Có lẽ ai đó sẽ bình luận tại sao nhị thức đặc biệt này được chọn. Mặc dù vậy, ý tưởng chung là ràng buộc từ phía trên sự tái phát của chúng tôi với một biểu thức cho một số không đổi . ∑ n - 1 i = 0 ( i+3 n3Yn=2hnhn=log2n3=3log2n→O(logn)nkk k
Để kết thúc với một lớp lót:
n^k
), kết luận là như nhau bởi vì k
được bỏ trong ký hiệu big-O (cách 3 đã bị loại bỏ). Nhưng nếu chúng ta thay thế bằng một số mũ ( e^n
), nó vẫn sẽ là một giới hạn trên chính xác , không phải là một giới hạn chặt chẽ . Chúng ta biết rằng chiều cao dự kiến ít nhất là logarit, do đó, việc xác định rằng nó cao nhất là logarit làm cho nó chặt chẽ.