Junior — Middle
Πώς καθορίζεται η χρονική πολυπλοκότητα της ενέργειας εισαγωγής ενός στοιχείου στο τέλος ενός πίνακα;
sobes.tech AI
Απάντηση από AI
Η εισαγωγή ενός στοιχείου στο τέλος ενός πίνακα σε iOS εξαρτάται από τον τύπο του πίνακα:
-
Για πίνακες σταθερού μεγέθους (π.χ. πίνακες σε C), η εισαγωγή στο τέλος δεν είναι δυνατή χωρίς τη δημιουργία νέου πίνακα.
-
Για NSMutableArray ή Swift πίνακες, που αλλάζουν δυναμικά το μέγεθός τους, η εισαγωγή στο τέλος γίνεται συνήθως σε αποσβεσμένο O(1) χρόνο. Αυτό σημαίνει ότι, γενικά, η προσθήκη είναι γρήγορη, αλλά μερικές φορές, όταν ο πίνακας φτάνει στη τρέχουσα χωρητικότητά του, πραγματοποιείται επανακατανομή μνήμης και αντιγραφή των στοιχείων, που παίρνει περισσότερο χρόνο.
Παράδειγμα σε Swift:
var array = [1, 2, 3]
array.append(4) // Συνήθως O(1), μερικές φορές O(n) κατά την επανακατανομή