Nếu bạn đang cố gắng tối đa hóa chiều cao của cây trong khi giảm thiểu độ sâu trung bình của tất cả các nút của cây, hình dạng tốt nhất rõ ràng sẽ là hình dạng "ô", ví dụ: một cây nhị phân đầy đủ với k nút và chiều cao = lg k, trong đó 0 < k < n, cùng với một đường đơn, hoặc "đuôi", của các nút n-k xuất phát từ một trong những lá của toàn bộ phần. Chiều cao của cây này là khoảng lg k + n - k.
Bây giờ, hãy tính tổng chiều sâu của tất cả các nút. Tổng chiều sâu của các nút của toàn bộ phần là tổng [j * 2^j], trong đó tổng được lấy từ j = 0 đến j = lg k. Theo một số đại số, thuật ngữ chi phối của kết quả là 2k lg k.
Tiếp theo, tổng độ sâu của phần đuôi được cho bởi tổng [i + lg k], trong đó tổng được lấy từ i = 0 đến i = n-k. Bởi một số đại số, kết quả là khoảng (n-k) lg k + (1/2) (n-k)^2.
Do đó, tổng hợp hai phần trên với nhau và chia cho n, độ sâu trung bình của tất cả các nút là (1 + k/n) lg k + (n-k)^2/(2n). Lưu ý rằng vì 0 < k < n, thuật ngữ đầu tiên ở đây là O (lg n) bất kể chúng ta chọn gì k. Do đó, chúng ta chỉ cần chắc chắn rằng thuật ngữ thứ hai là O (lg n). Để làm như vậy, chúng ta yêu cầu (n-k)^2 = O (n lg n), hoặc k = n - O (sqrt (n lg n)). Với lựa chọn này, chiều cao của cây là
lg k + n - k = O (sqrt (n lg n))
này là tiệm lớn hơn so với O bình thường (lg n), và là tiệm cao nhất bạn có thể làm cho cây trong khi giữ độ sâu trung bình là O (lg n)
Với 'w' bạn có nghĩa là' ω' (chữ nhỏ Omega), phải không? – Gumbo
@Gumbo vâng, cảm ơn. – meteorgan