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
|
Auteur : Florian Mathieu
|
||||||
|
|
||||||
Licence CC BY NC
|
Licence CC BY NC
|
||||||
|
|||||||
Reference in New Issue
Block a user