Junior — Middle
Σε ποιες περιπτώσεις η προσθήκη ενός στοιχείου στο τέλος ενός ArrayList μπορεί να έχει χρονική πολυπλοκότητα O(n);
sobes.tech AI
Απάντηση από AI
Η προσθήκη ενός στοιχείου στο τέλος ενός ArrayList έχει γενικά μια αθροιστική χρονική πολυπλοκότητα O(1), αλλά σε ορισμένες περιπτώσεις μπορεί να είναι O(n). Αυτό συμβαίνει όταν ο εσωτερικός πίνακας που αποθηκεύει τα στοιχεία είναι γεμάτος και χρειάζεται επέκταση.
Κατά την προσθήκη ενός νέου στοιχείου:
- Αν υπάρχει χώρος, το στοιχείο προστίθεται απλά — O(1).
- Αν δεν υπάρχει χώρος, δημιουργείται ένας νέος πίνακας μεγαλύτερου μεγέθους (συνήθως 1,5-2 φορές μεγαλύτερος), και όλα τα υπάρχοντα στοιχεία αντιγράφονται στον νέο πίνακα — αυτή η λειτουργία είναι O(n).
Επομένως, η προσθήκη ενός στοιχείου μπορεί να έχει χρονική πολυπλοκότητα O(n) ακριβώς τη στιγμή της επέκτασης του εσωτερικού πίνακα.