Junior — Middle
Slice istifadə edərək massivə element əlavə etmənin vaxt mürəkkəbliyi səviyyəsi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go'da, elementi sona əlavə etmək əməliyyatı (append) amortizasiya olunmuş vaxt mürəkkəbliyi O(1)-dir.
İzah:
-
Əgər slice kifayət qədər tutuma (
capacity) malikdirsə, element sadəcə növbəti boş indekse yazılmaqla əlavə olunur — bu, sabit vaxtlı əməliyyatdır. -
Əgər tutum kifayət etməzsə, daha böyük ölçülü yeni massiv ayrılır, köhnə elementlər köçürülür və yeni element əlavə olunur — bu əməliyyat O(n) vaxt alır, burada n hazırkı slice ölçüsüdür.
Lakin, belə yenidən bölüşdürmələr hər əlavə zamanı deyil, yalnız periodik olaraq baş verdiyi üçün, əlavə etmənin orta (amortizasiya olunmuş) mürəkkəbliyi O(1) qalır.