Junior — Middle
Как да оценим времевата сложност на операцията по изтриване на елемент от масив?
sobes.tech AI
Отговор от AI
Времевата сложност при изтриване на елемент от масив зависи от типа на масива и начина на изтриване:
-
В стандартен масив (например,
Arrayв Swift) изтриването на елемент по индекс изисква преместване на всички следващи елементи наляво, за да се запълни "дупката". Това води до O(n) сложност, където n е броят на елементите след изтрития. -
Ако се изтрие последният елемент, операцията обикновено се изпълнява за O(1), тъй като не е необходимо преместване.
-
В случай на динамични масиви (например,
ArrayListв Java илиNSMutableArrayв Objective-C), ситуацията е подобна — изтриването от средата изисква преместване на елементите.
Пример:
var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // изтрива елемента на индекс 2 (числото 3)
// След изтриването, елементите 4 и 5 се преместват с една позиция наляво
Общо взето, изтриването на елемент от масив е операция с времева сложност O(n).