Sobes.tech
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ı