Amortized time jest sposobem wyrażenia złożoności czasowej, gdy algorytm ma bardzo złą złożoność czasową tylko raz na jakiś czas oprócz złożoności czasowej, która zdarza się przez większość czasu. Dobrym przykładem byłaby ArrayList, która jest strukturą danych, która zawiera tablicę i może być rozszerzona. Inna definicja ze Stack Overflow to średni czas potrzebny na operację, jeśli wykonujesz wiele operacji.
Gdy ArrayList trafia w pojemność tablicy w nim, wtedy tworzy nową tablicę z podwojonym rozmiarem starej tablicy i kopiuje wszystkie elementy w starej tablicy do nowej tablicy. W ArrayList istnieją dwie złożoności czasowe; jedna to O(1), a druga to O(n).
Gdy tablica w niej nie osiągnęła swojej pojemności i wciąż ma wystarczająco dużo miejsca na wstawianie elementów
Aby wstawić element do tablicy w tym przypadku, musimy po prostu umieścić element za ostatnim elementem. Nadal mamy miejsce na wstawianie elementów.