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