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