Amortisierte Zeit ist die Art und Weise, die Zeitkomplexität auszudrücken, wenn ein Algorithmus neben der Zeitkomplexität, die die meiste Zeit vorkommt, nur einmal die sehr schlechte Zeitkomplexität hat. Ein gutes Beispiel wäre eine ArrayList, eine Datenstruktur, die ein Array enthält und erweitert werden kann. Eine andere Definition von Stack Overflow ist die durchschnittliche Zeit, die pro Operation benötigt wird, wenn man viele Operationen durchführt.
Wenn ArrayList die Kapazität des Arrays erreicht, wird ein neues Array mit der doppelten Größe des alten Arrays erstellt und alle Elemente des alten Arrays in das neue Array kopiert. In ArrayList gibt es zwei Zeitkomplexe; einer ist O(1) und der andere ist O(n).
Wenn das Array in ihm seine Kapazität nicht erreicht hat und noch genügend Platz zum Einfügen von Elementen hat
Um in diesem Fall ein Element in das Array einzufügen, müssen wir das Element nur nach dem letzten Element einfügen.
Wenn das Array seine Kapazität erreicht hat und sich mit der verdoppelten Größe neu erstellen muss
Das Array hat seine Kapazität erreicht und wir haben keine freien Plätze mehr. Dann müssen wir ein brandneues Array mit der doppelten Größe erstellen. Das dauert O(n), wobei n die Kapazität des alten Arrays und der schlimmste Fall ist.