Cái nào hiệu quả nhất?
Mơ hồ và khó trả lời. Các phức tạp tính toán đều được xác định rõ. Nếu đó là những gì bạn muốn nói về hiệu quả, thì không có tranh luận thực sự. Thật vậy, tất cả các thuật toán tốt đi kèm với bằng chứng và các yếu tố phức tạp.
Nếu bạn có nghĩa là "thời gian chạy" hoặc "sử dụng bộ nhớ" thì bạn sẽ cần so sánh việc triển khai thực tế. Sau đó, ngôn ngữ, thời gian chạy, hệ điều hành và các yếu tố khác đi vào hoạt động, làm cho câu hỏi khó trả lời.
Cái nào dễ thực hiện nhất?
Mơ hồ và khó trả lời. Một số thuật toán có thể phức tạp với bạn, nhưng tầm thường với tôi.
Mà thường được sử dụng?
Mơ hồ và khó trả lời. Đầu tiên là "bởi ai?" một phần của điều này? Haskell chỉ? Còn C hay C ++ thì sao? Thứ hai, có vấn đề phần mềm độc quyền nơi chúng tôi không có quyền truy cập vào nguồn để thực hiện khảo sát.
Nhưng quan trọng là, bạn đề nghị gì?
Tôi cho rằng điều này thuộc về nơi này vì nó mở để tranh luận.
Chính xác. Vì các tiêu chí khác của bạn không hữu ích lắm, đây là tất cả những gì bạn sẽ nhận được.
Bạn có thể lấy nguồn cho một số lượng lớn các thuật toán cây. Nếu bạn muốn học một cái gì đó, bạn có thể chỉ cần thực hiện mọi thứ bạn có thể tìm thấy. Thay vì yêu cầu một "khuyến nghị", chỉ cần thu thập mọi thuật toán bạn có thể tìm thấy.
Đây là danh sách:
http://en.wikipedia.org/wiki/Self-balANCE_binary_search_tree
Có sáu cái phổ biến được định nghĩa. Bắt đầu với những cái đó.