Sobes.tech
Junior — Middle

Wat is de tijdcomplexiteit van het verwijderen van elementen uit een vector in het slechtste geval?

sobes.tech AI

Antwoord van AI

In het slechtste geval heeft het verwijderen van elementen uit een vector (std::vector in C++) een tijdcomplexiteit van O(n), waarbij n het aantal elementen in de vector na de verwijzingspositie is. Dit komt doordat na het verwijderen van elementen alle volgende elementen naar links moeten worden verschoven om de lege ruimte op te vullen.

Bijvoorbeeld, als een element aan het begin van de vector wordt verwijderd, moeten alle andere elementen één positie naar voren worden verschoven, wat O(n) bewerkingen vereist.

std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin()); // verwijderen van het eerste element
// alle elementen verschuiven één positie naar links

Als een element aan het einde wordt verwijderd, is verschuiven niet nodig, en zal de operatie dichter bij O(1) liggen. Maar in het slechtste geval — O(n).