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)