•BFS (uvektet): O(|V| + |E|) -- korteste sti i antall kanter
•Dijkstra krever: ikke-negative kantvekter
•Reverser-triks: reverser kanter, kjor Dijkstra fra mal
Minimum spenntraer
•Prim: O((|V| + |E|) * log(|V|)) med binaer heap
•Kruskal: O(|E| * log(|E|)) med sortering + Union-Find
•MST har noyaktig |V| - 1 kanter
•
Vanlige feil å unngå
Grafalgoritmer
•Glemme a markere noder som besokt i BFS/DFS, noe som gir uendelig lokke i grafer med sykler.
•Forveksle BFS og DFS: BFS bruker ko og finner korteste sti i uvektede grafer, DFS bruker stakk og er grunnlag for syklusdeteksjon.
•Tro at topologisk sortering finnes for alle grafer -- den finnes kun for rettede asykliske grafer (DAG-er).
•Bruke DFS uten farger (kun visited-mengde) for syklusdeteksjon i rettede grafer -- du trenger tre tilstander for a skille mellom back-edges og cross-edges.
Korteste vei-algoritmer
•Bruke Dijkstra pa grafer med negative vekter -- Dijkstra gir feil svar nar vekter er negative. Bruk Bellman-Ford.
•Glemme a sjekke om en dequeue-t node allerede har fatt kortere avstand (foreldet oppforing i prioritetskoen).
•Kjore Dijkstra fra alle mulige startnoder i stedet for a reversere grafen og kjore en gang fra malet.
•Forveksle Dijkstra-kjoretid: O((|V|+|E|) log |V|) med heap, IKKE O(|V|^2) (det er uten heap).
Minimum spenntraer
•Bruke MST-algoritmer pa rettede grafer -- Prim og Kruskal er for urettede grafer.
•Glemme at MST ikke gir korteste sti mellom to noder -- MST minimerer total kantvekt, ikke enkeltavstander.
•
Eksamenstips
Grafalgoritmer
•Nar oppgaven sier 'forst naermeste, deretter lenger ut' eller 'nivavis', er det BFS som gjelder (H2024: venner innen k ledd).
•Nar oppgaven spor om sykliske avhengigheter eller om en graf er en DAG, bruk DFS med tre farger.
•Oppgi alltid kjoretidskompleksiteten nar du bruker en grafalgoritme -- det gir ekstra poeng.
Korteste vei-algoritmer
•Nar oppgaven sier 'positive vekter' eller 'tidsbruk som positivt heltall', bruk Dijkstra.
•Nar du skal finne korteste vei til en node (ikke fra en node), reverser grafen forst.
•Oppgi alltid hvilken datastruktur prioritetskoen bruker -- det pavirker kjoretiden.
Minimum spenntraer
•Nar oppgaven sier 'koble sammen alle med lavest kostnad', tenk MST (H2023: Blindern-problemet).
•Eksamen spor ofte om Prims kjoretid -- husk O((|V|+|E|) log |V|) med heap.
•Etter MST er bygget, er korteste sti i treet unik og finnes med BFS/DFS i O(|V|).
Traer og binaere soketraer
•AVL-rotasjoner ble testet i H2022. Ovelsesoppgave: sett inn tallene i rekkefølge og tegn treet etter hver innsetting.