Mana yang paling efisien?
Tidak jelas dan sulit dijawab. Kompleksitas komputasi semuanya terdefinisi dengan baik. Jika itu yang Anda maksud dengan efisiensi, tidak ada perdebatan nyata. Memang, semua algoritma yang baik datang dengan bukti dan faktor kompleksitas.
Jika Anda bermaksud "waktu berjalan" atau "penggunaan memori" maka Anda harus membandingkan implementasi yang sebenarnya. Kemudian bahasa, run-time, OS dan faktor-faktor lain ikut bermain, membuat pertanyaan sulit dijawab.
Mana yang paling mudah diterapkan?
Tidak jelas dan sulit dijawab. Beberapa algoritma mungkin terlihat rumit bagi Anda, tetapi sepele bagi saya.
Mana yang paling sering digunakan?
Tidak jelas dan sulit dijawab. Pertama ada "oleh siapa?" bagian dari ini? Hanya Haskell? Bagaimana dengan C atau C ++? Kedua, ada masalah perangkat lunak berpemilik di mana kami tidak memiliki akses ke sumber untuk melakukan survei.
Tetapi yang terpenting, yang Anda rekomendasikan?
Saya menganggap ini milik di sini karena itu terbuka untuk diperdebatkan.
Benar. Karena kriteria Anda yang lain tidak terlalu membantu, ini yang akan Anda dapatkan.
Anda bisa mendapatkan sumber untuk sejumlah besar algoritma pohon. Jika Anda ingin mempelajari sesuatu, Anda bisa menerapkan setiap yang Anda bisa temukan. Daripada meminta "rekomendasi", kumpulkan saja setiap algoritma yang dapat Anda temukan.
Berikut daftarnya:
http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree
Ada enam yang populer didefinisikan. Mulailah dengan itu.