Junior — Middle
Dinamik diziye öğe ekleme işleminin zaman karmaşıklığı nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dinamik bir diziye öğe ekleme genellikle O(1) amortize zaman karmaşıklığına sahiptir.
Açıklama:
- Dizide boş alan varsa, öğe sabit zamanda eklenir.
- Alan yoksa, dizi daha büyük yeni bir bellek bloğu ayırır (genellikle iki katı), eski öğeleri kopyalar ve yenisini ekler.
Genişletme işlemi O(n) zaman alsa da, sık sık gerçekleşmediği için, ekleme işleminin ortalama (amortize) karmaşıklığı O(1) olarak kalır.
Go dilinde dilimlerle örnek:
var arr []int
arr = append(arr, 10) // öğe ekleme
append, gerekirse dilimi otomatik olarak genişletir.