Sobes.tech
Junior — Middle

Bir massivdən elementin silinməsi əməliyyatının vaxt mürəkkəbliyini necə qiymətləndirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Array-dən elementin silinməsinin vaxt mürəkkəbliyi array-in növündən və silmə üsulundan asılıdır:

  • Standart array (məsələn, Swift-də Array) indeksə görə elementin silinməsi bütün sonrakı elementlərin sola sürüşdürülməsini tələb edir ki, bu da "delik" doldurmaq üçündür. Bu, O(n) vaxt mürəkkəbliyinə gətirib çıxarır, burada n silinən elementdən sonra olan elementlərin sayıdır.

  • Əgər son element silinərsə, əməliyyat adətən O(1) vaxtda həyata keçirilir, çünki sürüşdürmə lazım deyil.

  • Dinamik arraylərdə (məsələn, Java-da ArrayList və ya Objective-C-də NSMutableArray) vəziyyət oxşardır — ortadan silmək elementlərin sürüşdürülməsini tələb edir.

Nümunə:

var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // indeks 2-dəki elementi silir (nömrə 3)
// Silindikdən sonra, 4 və 5 elementləri bir mövqe sola sürüşür

Ümumiyyətlə, array-dən elementin silinməsi vaxt mürəkkəbliyi O(n) olan əməliyyatdır.