Junior — Middle
ArrayList'e bir öğe eklerken zaman karmaşıklığı nasıl belirlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
ArrayList'e öğe eklemenin zaman karmaşıklığı genellikle amortize olarak O(1)dir. Bu durum şundan kaynaklanır:
- Eğer
ArrayList'in iç dizisi boş alan içeriyorsa, yeni öğe doğrudan bir sonraki konuma yazılır — bu işlem sabit zaman alır O(1). - Eğer iç dizi doluysa, genişletilir: daha büyük bir boyutta yeni bir dizi oluşturulur ve tüm öğeler oraya kopyalanır. Bu işlem O(n) zaman alır, burada n listenin mevcut boyutudur.
Ancak, genişletme her eklemede değil, sadece periyodik olarak gerçekleşir, bu nedenle ekleme işleminin ortalama (amortize) karmaşıklığı O(1) olarak kalır.
Örnek:
ArrayList<Integer> list = new ArrayList<>();
list.add(10); // Amortize O(1)