Professional Documents
Culture Documents
Algorytm Dijkstry
Algorytm Dijkstry
Przykładowe dane:
1
9
1 2 3
1 4 3
2 3 2
3 1 6
3 6 1
4 5 1
5 3 1
5 6 2
6 4 3
Pierwszym z nich jest sposób reprezentacji grafu w pamięci komputera. Ponieważ algorytm
często będzie odwoływał się do wierzchołków sąsiadujących z wierzchołkiem przetwarzanym
(tzn. połączonych z nim krawędzią), to reprezentacja grafu powinna efektywnie umożliwiać
szybkie wyszukiwanie sąsiadów. Wydaje się, iż warunek ten spełniają listy sąsiedztwa.
Następny problem, to sprawdzanie czy zbiór Q jest pusty w warunku kontynuacji pętli. Zwróć
uwagę, iż przy każdym przebiegu tej pętli dokładnie jeden wierzchołek jest przenoszony z Q
do S (zmienia swój stan w QS[ ] z false na true). Zatem po n-tym przebiegu wszystkie
wierzchołki automatycznie znajdą się w zbiorze S. Nie musimy sprawdzać Q - wystarczy, iż
pętlę tą zrealizujemy jako pętlę iteracyjną o n przebiegach.