Sobes.tech
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).