Files

1.7 KiB

04 — L'Annuaire

Algorithmes : Tri par insertion + Recherche dichotomique Difficulté : Moyen Durée estimée : 1h — 1h15


Contexte

Vous créez un mini-annuaire de contacts. Il doit toujours rester trié par nom pour que la recherche dichotomique fonctionne.

Chaque fois qu'on ajoute un contact, on l'insère directement à la bonne place (comme dans le tri par insertion). Chaque fois qu'on cherche, on utilise la dichotomie.


Étapes

Étape 1 — Afficher l'annuaire

Lancez le starter, vérifiez que afficher_annuaire() fonctionne.

Étape 2 — Implémenter ajouter_contact(annuaire, contact)

Cette fonction insère le nouveau contact à la bonne position pour maintenir l'ordre alphabétique.

Indication : c'est le principe du tri par insertion, mais appliqué à un seul élément. On parcourt depuis la fin et on décale les contacts dont le nom est alphabétiquement après le nouveau.

Pour comparer des chaînes alphabétiquement en Python : "Dupont" < "Martin"True

Étape 3 — Implémenter rechercher(annuaire, nom)

Recherche dichotomique : retourne le contact (dictionnaire complet) si trouvé, None sinon.

Étape 4 — Menu interactif

Complétez la boucle menu() pour que l'utilisateur puisse :

  • 1 — Afficher tous les contacts
  • 2 — Ajouter un contact
  • 3 — Rechercher un contact par nom
  • 4 — Quitter

Étape 5 — Extension (si vous avez le temps)

Ajoutez une option 5 pour supprimer un contact par nom (cherchez-le d'abord avec la dichotomie, puis supprimez-le de la liste).


Ce que vous devez rendre

  • Le programme avec le menu fonctionnel
  • Réponse : dans quel cas la dichotomie est-elle inutilisable directement ?