Đầu tiên, nhận được hiệu suất tốt nhất có thể là không phải mục tiêu cuối cùng của lập trình. Vì vậy, ngay cả khi tùy chọn B luôn nhanh hơn và tiêu thụ ít bộ nhớ hơn A, điều đó không có nghĩa nó luôn là lựa chọn tốt hơn, nếu nó phức tạp hơn. Mã phức tạp hơn mất nhiều thời gian để viết, khó hiểu hơn và có nhiều khả năng chứa lỗi hơn. Vì vậy, nếu tùy chọn đơn giản nhưng kém hiệu quả A là đủ tốt cho bạn, thì điều đó có nghĩa đó là lựa chọn tốt hơn.
Bây giờ, nếu bạn muốn so sánh cây AVL với cây tìm kiếm nhị phân đơn giản (BST) mà không cân bằng, thì AVL sẽ tiêu thụ nhiều bộ nhớ hơn (mỗi nút phải nhớ yếu tố cân bằng) và mỗi thao tác có thể chậm hơn (vì bạn cần để duy trì hệ số cân bằng và đôi khi thực hiện phép quay).
Như bạn đã nói, BST không cân bằng có trường hợp xấu nhất (tuyến tính) tồi tệ nhất. Nhưng nếu bạn biết rằng trường hợp xấu nhất này sẽ không xảy ra với bạn, hoặc nếu bạn không sao nếu hoạt động chậm trong những trường hợp hiếm hoi, BST không cân bằng có thể tốt hơn AVL.
Cây AVL hết thời trang, ngày nay chúng bị thay thế bởi cây đỏ đen. – starblue