Junior — Middle
Array-in sonuna element əlavə etmə əməliyyatının vaxt mürəkkəbliyi necə müəyyən edilir?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də elementin massiv sonunda yerləşdirilməsi massiv növündən asılıdır:
-
Sabit ölçülü massivlər (məsələn, C massivləri) üçün, yeni massiv yaratmadan sona əlavə etmək mümkün deyil.
-
NSMutableArray və ya Swift massivləri, dinamik olaraq ölçüsünü dəyişənlər üçün, sona əlavə etmə adətən amortizasiya olunmuş O(1) vaxt alır. Bu, ümumiyyətlə, əlavə etmənin sürətli olduğu anlamına gəlir, lakin bəzən, massiv hazırkı tutumuna çatanda, yaddaşın yenidən bölüşdürülməsi və elementlərin köçürülməsi baş verir ki, bu da daha çox vaxt alır.
Swift-də nümunə:
var array = [1, 2, 3]
array.append(4) // Adətən O(1), bəzən O(n) yenidən bölüşdürmə zamanı