Sobes.tech
Junior — Middle

Kako proceniti vremensku složenost operacija umetanja, brisanja i pretraživanja elemenata u povezanoj listi?

sobes.tech АИ

Одговор од АИ

Vremenska složenost operacija u povezanoj listi zavisi od toga šta tačno radimo i da li imamo pristup potrebnom čvoru:

  • Ubacivanje:

    • Na početak liste — O(1), jer je dovoljno da promenimo veze.
    • Na kraj jednostruko povezane liste bez pokazivača na kraj — O(n), potrebno je proći kroz celu listu.
    • Na kraj sa pokazivačem na kraj — O(1).
    • Na bilo koje mesto (po indeksu ili vrednosti) — O(n), jer je potrebno pronaći poziciju.
  • Brisanje:

    • Brisanje prvog elementa — O(1).
    • Brisanje po vrednosti ili indeksu — O(n), jer je potrebno pronaći element i njegovog prethodnika.
  • Pretraživanje:

    • Pretraživanje elementa po vrednosti — O(n), jer je potrebno proći kroz listu.

Dakle, osnovne operacije zahtevaju linearnu vremensku složenost ako nemamo direktan pristup potrebnom čvoru. To je posledica sekvencijalne prirode povezanih listića.