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
ArrayListveya Objective-C'dekiNSMutableArray) 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.