Non, ce n'est pas le cas. input.get(idx);
est lui-même O(idx)
dans le temps, ce qui rend votre implémentation quadratique dans le temps. Vous voudrez probablement utiliser un itérateur (ou mieux encore, listIterator
).
EDIT: En outre, vous pouvez facilement éliminer holdPopped avec un peu de réarrangement.
holdPopped.add
sera trivialement O (1) à la fois dans le temps et dans l'espace puisque vous pré-allouer de l'espace (qui est O (n) dans l'espace) en passant la taille.
IIRC, holdLL.add
est amorti O (1) dans le temps et l'espace ainsi. Parfois, ce sera plus, parfois moins, mais l'espace total est n, il devrait donc être moyen de O (n). Vous pouvez simplifier l'analyse en utilisant holdLL.ensureCapacity
.
Je vote pour clore cette question hors-sujet parce que le code original était sur un site externe (voir l'historique des modifications) et n'est plus disponible. –