Contenu du cours
Aperçu des Algorithmes et des Structures de Données
Aperçu des Algorithmes et des Structures de Données
Complexité Temporelle des Opérations de Base sur les Tableaux
Le tableau suivant montre la complexité temporelle des opérations de base pour les tableaux.
Opération de recherche
Comme nous l'avons discuté précédemment et comme cela peut être vu ci-dessus, l'avantage principal du tableau est que nous pouvons accéder à un élément arbitraire en temps constant si nous connaissons l'index de cet élément dans un tableau. Mais si nous ne savons pas quel élément nous recherchons, l'opération de recherche prend une complexité temporelle de O(N)
car nous devons effectuer une recherche linéaire pour un élément.
Opération de suppression
Si nous voulons supprimer un élément par index, nous pouvons le faire en temps constant.
Cependant, parce que les tableaux sont représentés par des blocs de mémoire continus, supprimer un élément arbitraire (sauf pour le dernier élément) signifie que nous devons gérer des "trous" dans une structure de données. L'image suivante l'illustre.
Pour se débarrasser des trous, nous devons déplacer tous les éléments du "trou" jusqu'à la fin du tableau, une position plus près du début du tableau. Et dans le pire des cas, si nous supprimons le premier élément, nous devons déplacer tous les autres éléments, et la complexité temporelle de cette opération sera O(N)
. Dans le meilleur des cas, nous aurons une complexité temporelle de O(1)
lors de la suppression du dernier élément.
Opération d'insertion
Comme pour la suppression d'éléments, lors de l'insertion d'un élément dans un tableau, nous pouvons avoir besoin de déplacer les éléments existants pour faire de la place pour le nouvel élément. Dans le pire des cas, lors de l'insertion au début du tableau, nous devrions déplacer l'ensemble du tableau, ce qui entraîne une complexité temporelle de O(n)
. Cependant, lors de l'insertion à la fin du tableau, nous pouvons simplement placer le nouvel élément sans aucun déplacement, ce qui entraîne une complexité temporelle de O(1)
.
Merci pour vos commentaires !