Listes chaînées : comparaison liste vs dictionnaire (BO)
This commit is contained in:
@@ -205,6 +205,49 @@ C'est précisément ce que vous allez implémenter dans le chapitre suivant.
|
||||
|
||||
---
|
||||
|
||||
## 7. Liste chaînée vs dictionnaire : deux façons de chercher
|
||||
|
||||
La liste chaînée et le dictionnaire stockent tous les deux des données, mais la **recherche** fonctionne très différemment.
|
||||
|
||||
### Dans une liste chaînée : on parcourt
|
||||
|
||||
Pour savoir si "Florizarre" est dans la liste, on doit visiter les maillons un par un jusqu'à le trouver (ou arriver à `None`) :
|
||||
|
||||
```python
|
||||
l.rechercher("Florizarre")
|
||||
# Bulbizarre → Herbizarre → Florizarre ✓ (3 étapes)
|
||||
```
|
||||
|
||||
Dans le pire cas (valeur absente ou en fin de liste), on parcourt **tous les maillons** : c'est **O(n)**.
|
||||
|
||||
### Dans un dictionnaire : on accède directement
|
||||
|
||||
Un dictionnaire associe chaque valeur à une **clé**. L'accès par clé est direct, quelle que soit la taille du dictionnaire :
|
||||
|
||||
```python
|
||||
pokedex = {
|
||||
"Bulbizarre": {"type": "Plante", "pv": 45},
|
||||
"Herbizarre": {"type": "Plante", "pv": 60},
|
||||
"Florizarre": {"type": "Plante", "pv": 80},
|
||||
}
|
||||
|
||||
pokedex["Florizarre"] # accès direct, pas de parcours
|
||||
```
|
||||
|
||||
Peu importe qu'il y ait 3 ou 3 000 entrées : l'accès est toujours **O(1)**.
|
||||
|
||||
### Comparaison
|
||||
|
||||
| | Liste chaînée | Dictionnaire |
|
||||
|---|---|---|
|
||||
| Recherche d'une valeur | O(n) — parcours maillon par maillon | O(1) — accès direct par clé |
|
||||
| Ordre des éléments | Conservé (chaîne de maillons) | Non garanti |
|
||||
| Usage naturel | Séquence à modifier souvent | Recherche rapide par identifiant |
|
||||
|
||||
> **À retenir** : si on a besoin de retrouver souvent un élément par son identifiant (un nom, un id…), le dictionnaire est nettement plus efficace qu'une liste chaînée. Si on a besoin de maintenir un ordre et de faire des insertions/suppressions fréquentes, la liste chaînée est mieux adaptée.
|
||||
|
||||
---
|
||||
|
||||
Auteur : Florian Mathieu
|
||||
|
||||
Licence CC BY NC
|
||||
|
||||
Reference in New Issue
Block a user