Junior — Middle
Dinamik massivə element əlavə etmə əməliyyatının vaxt mürəkkəbliyi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Dinamik bir array-ə element əlavə etmə ümumiyyətlə O(1) amortizasiya vaxt mürəkkəbliyinə malikdir.
İzah:
- Əgər array-də boş yer varsa, element sabit vaxtda əlavə olunur.
- Əgər yer yoxdursa, array daha böyük yaddaş bloku ayırır (adətən iki dəfə çox), köhnə elementləri köçürür və yeni elementi əlavə edir.
Genişləndirmə əməliyyatı O(n) vaxt alsa da, nadir hallarda baş verdiyi üçün, əlavə etmənin orta (amortizasiya olunmuş) mürəkkəbliyi O(1) qalır.
Go dilində slices nümunəsi:
var arr []int
arr = append(arr, 10) // element əlavə et
append lazım olduqda slice-i avtomatik genişləndirəcək.