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
ArrayListvə 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.