KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I need to find the shortest route between 2 vertices of a graph. I have a matrix, which contains all the weights. How can I do it? Currently, I have the following code: private int[] Dijkstra(int start, int end) { bool[] done = new bool[8]; int[] parent = new int[8]; for (int i = 0; i < parent.Length; i++) parent[i] = -1; int[] distances = new int[8]; for (int i = 0; i < distances.Length; i++) distances[i] = int.MaxValue; distances[start] = 0; int current = start; while (!done[current]) { done[current] = true; for (int i = 0; i < 8; i++) { if (graph[current, i] != int.MaxValue) { int dist = graph[current, i] + distances[current]; if (dist < distances[i]) { distances[i] = dist; parent[i] = current; } } } int min = int.MaxValue; for (int i = 0; i < 8; i++) { if (distances[i] < min&&!done[i]) { current = i; min = distances[i]; } } } return parent; } It works, but, however I don't know how to make it find the shortest route between, for example 1 and 3, and return the route like 1=>4=>2=>3. Thanks in advance.
Tags (comma-separated)
Save Edits
Cancel