Sobes.tech
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) κατά την επανακατανομή