Junior — Middle
Jaká je časová složitost operace vložení prvku na začátek datové množiny?
sobes.tech AI
Odpověď od AI
Časová složitost vložení prvku na začátek datové struktury závisí na použité struktuře dat.
- Pokud je množina implementována jako spojový seznam (například jednoduše spojovaný seznam), vložení na začátek bude mít složitost O(1), protože stačí změnit ukazatel na nový prvek.
- Pokud je množina implementována jako pole nebo dynamické pole (například ArrayList), vložení na začátek vyžaduje posun všech prvků, což dává složitost O(n).
- Ve standardních datových strukturách množin (například HashSet ve Swift nebo Set v iOS) neexistuje pojem "začátek", protože množina není uspořádaná. Vložení prvku obvykle probíhá v amortizovaném čase O(1).
Tedy, pokud mluvíme konkrétně o množině (Set), vložení prvku nemá pojem "začátek" a probíhá v O(1). Pokud se jedná o seřazenou kolekci, může být vložení na začátek O(1) nebo O(n), v závislosti na implementaci.