Sobes.tech
Junior — Middle

ArrayList-ə element əlavə edərkən vaxt mürəkkəbliyi necə müəyyən edilir?

sobes.tech Süni İntellekt

AI-dan cavab

ArrayList-ə element əlavə etmənin vaxt mürəkkəbliyi adətən amortizasiya olunmuş O(1)-dir. Bu, aşağıdakı səbəblərə görədir:

  • Əgər ArrayList-in daxili massivində boş yer varsa, yeni element sadəcə növbəti mövqeyə yazılır — əməliyyat sabit vaxt O(1) alır.
  • Əgər daxili massiv doludursa, genişlənmə baş verir: daha böyük ölçülü yeni massiv yaradılır və bütün elementlər ora köçürülür. Bu əməliyyat O(n) vaxt alır, burada n siyahının hazırkı ölçüsüdür.

Ancaq, genişlənmə hər əlavə zamanı deyil, periodik olaraq baş verir, buna görə əlavə etmənin orta (amortizasiya olunmuş) mürəkkəbliyi O(1) qalır.

Nümunə:

ArrayList<Integer> list = new ArrayList<>();
list.add(10); // Amortizasiya olunmuş O(1)