Sobes.tech
Junior — Middle

Bir diziden öğe kaldırma işleminin zaman karmaşıklığını nasıl değerlendirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir diziden bir öğeyi kaldırmanın zaman karmaşıklığı, dizinin türüne ve kaldırma yöntemine bağlıdır:

  • Standart bir dizide (örneğin, Swift'teki Array), bir öğeyi indeksle kaldırmak, sonraki tüm öğeleri sola kaydırmayı gerektirir ve bu, "delik" doldurmak içindir. Bu, O(n) zaman karmaşıklığına yol açar, burada n, kaldırılan öğeden sonraki öğelerin sayısıdır.

  • Eğer son öğe kaldırılırsa, işlem genellikle O(1) zamanında gerçekleştirilir, çünkü kaydırma gerekmez.

  • Dinamik dizilerde (örneğin, Java'daki ArrayList veya Objective-C'deki NSMutableArray) durum benzerdir – ortadan kaldırmak, öğeleri kaydırmayı gerektirir.

Örnek:

var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // indeks 2'deki öğeyi kaldırır (sayı 3)
// Kaldırmadan sonra, 4 ve 5 öğeleri sola kayar

Genel olarak, diziden bir öğeyi kaldırmak, zaman karmaşıklığı O(n) olan bir işlemdir.