</>
Plan du cours — 20/24

Complexités des structures de données

Intermédiaire

Le tableau à avoir en tête avant tout entretien : quelle structure pour quelle opération.

n est le nombre d'éléments.

StructureAccèsRechercheInsertionSuppressionNote
Tableau dynamiqueO(1)O(n)O(1) amorti en fin, O(n) ailleursO(1) en fin, O(n) ailleursTrié : recherche binaire en O(log n)
Hashmap / Set—O(1) moyenO(1) moyenO(1) moyenPire cas O(n) en cas de collisions, pas d'ordre garanti
Liste chaînéeO(n)O(n)O(1) en tête ou sur un nœud connuO(1) sur un nœud connuPas d'accès direct par index
Pile / File (deque)—O(n)O(1)O(1)En Python, collections.deque pour une file
BST équilibré—O(log n)O(log n)O(log n)Non équilibré : O(n) dans le pire cas
HeapO(1) sur le min/maxO(n)O(log n)O(log n) sur le min/maxConstruction depuis n éléments : O(n)
Trie—O(L)O(L)O(L)L = longueur du mot, indépendant du nombre de mots

Astuce : la question « laquelle choisir ? » se ramène presque toujours à : besoin d'un accès par clé (hashmap), de l'ordre (BST, tri), du min/max (heap), ou du dernier/premier arrivé (pile/file).