Sobes.tech
Junior — Middle

Kāda ir laika sarežģītība elementa pievienošanai ArrayList tipa masīvam?

sobes.tech AI

Atbilde no AI

ArrayList tipa masīva elementa pievienošanas laika sarežģītība vidēji ir O(1) — amortizēts konstants laiks.

Tas notiek tāpēc, ka ArrayList glabā elementus fiksēta lieluma masīvā. Kad pievienojam elementu un masīvā ir brīva vieta, elements vienkārši tiek ievietots nākamajā šūnā.

Tomēr, ja masīvs ir pilns, tiek veikta paplašināšanas operācija — tiek izveidots jauns, lielāks masīvs, un visi elementi tiek pārvietoti uz to. Šī operācija aizņem O(n) laiku, kur n ir elementu skaits.

Piemērs:

ArrayList<Integer> list = new ArrayList<>();
list.add(1); // O(1)
list.add(2); // O(1)
// Kad sasniegta masīva ietilpība, notiek paplašināšana — O(n)

Tādējādi, vidējā pievienošanas sarežģītība ir — O(1), bet sliktākajā gadījumā — O(n).