Bonjour à tous,
J'ai du mal à comprendre ceci :
Ajout en temps constant amorti, ça me va, mais la suppression en temps constant amorti je vois pas, ou alors j'ai mal compris le "amorti"java.util.ArrayList :
Un java.util.ArrayList utilise un tableau en interne pour ranger les données. Un ArrayList fournit un accès aux éléments par leur indice très performant et est optimisé pour des opérations d'ajout/suppression d'éléments en fin de liste.
Complexité : Les opérations size, isEmpty, get, set, iterator sont exécutées en temps constant.
Les opérations d'ajout/suppression sont exécutées en temps constant amorti (les ajouts/suppressions en fin de liste sont plus rapides).
Pour moi c'est en temps linéaire en fonction du nombre d’élément après l’élément à supprimer. Puisque ArrayList conserve l'ordre, on ne peut pas juste faire un swap avec le dernier élément, on est obligé de décaler les X élément apres de 1.
Du coup si vous pouvez m'éclairer je suis preneur
GrosLapin
Partager