Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Dijkastra
#include <bits/stdc++.h> using namespace std; int V; int graph[1000][1000]; int minDistance(int dist[], bool visited[]){ int min = INT_MAX, min_index; for (int v = 0; v < V; v++) if (visited[v] == false && dist[v] <= min) min = dist[v], min_index = v; return min_index; } int dijkstra(int src, int dest){ int dist[V]; bool visited[V]; for (int i = 0; i < V; i++) dist[i] = INT_MAX, visited[i] = false; dist[src] = 0; for (int count = 0; count < V-1; count++){ int u = minDistance(dist, visited); visited[u] = true; for (int v = 0; v < V; v++) if (!visited[v] && graph[u][v] && dist[u] != INT_MAX && dist[u]+graph[u][v] < dist[v]) dist[v] = dist[u] + graph[u][v]; } return dist[dest]; } int main(){ int i, j, A_location, F_location; cin >> V; for(i=0; i<V; ++i) for(j=0; j<V; ++j){ cin >> graph[i][j]; } cin >> A_location >> F_location ; cout << dijkstra(A_location, F_location); return 0; }
run
|
edit
|
history
|
help
0
134
KMP substring search
queueLinkedlist
strcpy
mergeSort
ASHA
Clementina
C++ Array printing
Backtracking_simple
MergeSort