# 06 — La Bibliothèque **Algorithmes :** Tri par sélection + Recherche dichotomique **Difficulté :** Moyen **Durée estimée :** 1h — 1h15 --- ## Contexte Vous gérez le catalogue d'une bibliothèque. Les livres doivent être triés par **titre alphabétique** pour qu'on puisse les retrouver rapidement. Vous utiliserez le tri par sélection pour trier, et la dichotomie pour chercher. --- ## Étapes ### Étape 1 — Trier par titre Implémentez `tri_selection_livres(livres)` qui trie par `"titre"` (ordre alphabétique). > **Rappel** : en Python, `"Alice" < "Zorro"` → `True`. Vous pouvez comparer des chaînes directement. ### Étape 2 — Recherche dichotomique Implémentez `rechercher_titre(livres_tries, titre)` qui retourne le livre si trouvé, `None` sinon. > **Attention** : la comparaison doit être exacte (majuscules comprises). Pour simplifier, tout est déjà en minuscules dans les données. ### Étape 3 — Affichage enrichi Implémentez `afficher_fiche(livre)` qui affiche toutes les informations d'un livre de façon lisible (titre, auteur, année, genre, pages). ### Étape 4 — Statistiques Ajoutez une fonction `statistiques(livres)` qui affiche : - Le nombre de livres - Le livre le plus court et le plus long (en pages) - La moyenne de pages > **Indication** : une fois la liste triée par titre, vous pouvez utiliser une boucle simple pour les stats. Ou bien trier une copie par pages avec votre tri ! ### Étape 5 — Extension (si vous avez le temps) Ajoutez la possibilité de trier aussi par **année** ou par **nombre de pages**, et de rechercher tous les livres d'un **même auteur** (recherche linéaire cette fois — pourquoi ne peut-on pas utiliser la dichotomie ici ?). --- ## Ce que vous devez rendre - Le programme fonctionnel - Réponse : pour chercher tous les livres d'un auteur, pourquoi la dichotomie est-elle inadaptée ?