Junior — Middle
Jak odhadnout časovou složitost operace odstranění prvku z pole?
sobes.tech AI
Odpověď od AI
Časová složitost odstranění prvku z pole závisí na typu pole a způsobu odstranění:
-
U standardního pole (například
Arrayve Swiftu) vyžaduje odstranění prvku podle indexu posunutí všech následujících prvků vlevo, aby se zaplnila "díra". To vede k časové složitosti O(n), kde n je počet prvků po odstraněném. -
Pokud je odstraněn poslední prvek, operace se obvykle provádí za O(1), protože posun není potřeba.
-
U dynamických polí (například
ArrayListv Javě neboNSMutableArrayv Objective-C) je situace podobná — odstranění uprostřed vyžaduje posun prvků.
Příklad:
var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // odstraní prvek na indexu 2 (číslo 3)
// Po odstranění se prvky 4 a 5 posunou o jednu pozici vlevo
Obecně platí, že odstranění prvku z pole je operace s časovou složitostí O(n).