Temat 8 Flashcards
Temat 8: Grafy
Czym jest DAG?
Skierowany graf acykliczny
Jakiem mamy reprezentacje grafu?
- macierz sąsiedztwa
- lista sąsiedztwa
- lista krawędzi
- macierz incydencji
Jakie mamy algorytmy przeszukiwania grafu? Dopasuj do nich najlepszą strukturę danych?
- DFS (Depth-First Search) -> kolejka FIFO
- BFS (Breadth-First Search) -> stos (kolejka LIFO)
- Best-First Search -> kolejka priorytetowa
Jaką złożoność obliczeniową ma:
- DFS
- BFS
- Macierz sasiedztwa
- Lista sasiedztwa
DFS –> O(V + E)
BFS –> O(V + E)
Macierz sasiedztwa:
- pamięć: O(n^2)
- dostęp do krawędzi: O(1)
- przegląd sąsiadów: O(n)
Lista sąsiedztwa:
- pamięć: O(n + m)
- dostęp do krawędzi: O(N(v))
- przegląd sąsiadów: O(N(v))
Kiedy używamy DFS, a kiedy BFS?
DFS - używamy, gdy chcemy przejrzeć graf dogłębnie
BFS - jeżeli mamy graf bez wag
Kiedy używamy Macierzy sąsiedztwa, a kiedy lepsza jest Lista sąsiedztwa?
Macierz sąsiedztwa jest użyteczna dla grafów gęstych oraz gdy potrzebujemy szybki dostęp do krawędzi.
Lista sąsiedztwa jest lepsza w przypadku dużej ilości danych oraz dla grafów rzadkich.