Junior — Middle
Mekkora az időbeli komplexitása annak az műveletnek, amikor egy elemet beszúrunk a dinamikus ArrayList elejére?
sobes.tech MI
Válasz az MI-től
Dinamikus tömbbe (például Java-ban ArrayList) elem beszúrása a kezdethez időkomplexitással O(n), ahol n a tömbben lévő elemek száma.
Ez azért van, mert a kezdethez történő beszúráskor minden meglévő elemet egy pozícióval jobbra kell mozgatni, hogy helyet csináljunk az új elemnek. Az elemek másolási folyamata lineáris időt vesz igénybe.
Példa:
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
// Kezdethez való beszúrás
list.add(0, 0); // minden elemet jobbra mozgat
Ezért a végéhez való beszúrás általában gyorsabb (amortizált O(1)), míg a kezdethez való O(n).