Що найефективніше?
Неясне і важко відповісти. Комп'ютерні складності всі чітко визначені. Якщо це означає ефективність, справжніх дебатів немає. Дійсно, всі хороші алгоритми мають докази та фактори складності.
Якщо ви маєте на увазі "час запуску" або "використання пам'яті", вам потрібно буде порівняти фактичні реалізації. Тоді мова, час роботи, ОС та інші фактори вступають у гру, що ускладнює відповідь на питання.
Що найпростіше здійснити?
Неясне і важко відповісти. Деякі алгоритми можуть здатися вам складними, але для мене банальними.
Що найчастіше використовується?
Неясне і важко відповісти. Спочатку є "ким?" частина цього? Тільки Haskell? Що з C або C ++? По-друге, існує проблема фірмового програмного забезпечення, коли ми не маємо доступу до джерела, щоб зробити опитування.
Але важливо, що ви рекомендуєте?
Я припускаю, що це належить тут, оскільки воно відкрите для дебатів.
Правильно. Оскільки ваші інші критерії не дуже корисні, це все, що ви збираєтеся отримати.
Ви можете отримати джерело для великої кількості алгоритмів дерев. Якщо ви хочете чогось навчитися, ви можете просто реалізувати кожен, кого ви можете знайти. Замість того, щоб просити "рекомендацію", просто збирайте кожен алгоритм, який ви можете знайти.
Ось список:
http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree
Визначено шість популярних. Почніть з тих.