0% found this document useful (0 votes)
10 views5 pages

Dijkstra 0001

Dijikshtra Algo

Uploaded by

sreekat8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views5 pages

Dijkstra 0001

Dijikshtra Algo

Uploaded by

sreekat8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

DIJKSTRA’S ALGORITHM

Algorithm:
➢ Initialize the cost matrix:

• Create a cost matrix that stores the actual cost (weight) of each edge between nodes. If

there is no direct edge between nodes, set the cost to INFINITY.

➢ Initialization:

• Initialize the distance[] array to store the minimum distance from the start node to each

node. Initially, set this to the direct cost from the start node.

• Initialize the pred[] (predecessor) array to store the previous node in the shortest path.

• Initialize the visited[] array to mark which nodes have been visited. Initially, set all nodes as

unvisited.

• Set the distance from the start node to itself to 0 and mark the start node as visited.

• Set count to 1, representing the number of nodes visited.

➢ Main Loop:

• Repeat the following steps until all nodes are visited (i.e., count < n - 1):

o Find the next unvisited node with the smallest distance from the start node (referred

to as nextnode).

o Mark nextnode as visited.

o Update the distances of the unvisited neighboring nodes of nextnode. For each

neighboring node i, if distance[nextnode] + cost[nextnode][i] < distance[i], update

distance[i] and set pred[i] to nextnode.

➢ Output:

• After visiting all nodes, print the shortest distance from the start node to each other node,

except itself.

Name: K.B. DHANUSH TEJ


Regd.No: 2023003706
Input:
#include <stdio.h>

#define INFINITY 9999

#define MAX 10

void Dijkstra(int Graph[MAX][MAX], int n, int start);

void Dijkstra(int Graph[MAX][MAX], int n, int start) {

int cost[MAX][MAX], distance[MAX], pred[MAX];

int visited[MAX], count, mindistance, nextnode, i, j;

for (i = 0; i < n; i++)

for (j = 0; j < n; j++)

if (Graph[i][j] == 0)

cost[i][j] = INFINITY;

else

cost[i][j] = Graph[i][j];

for (i = 0; i < n; i++) {

distance[i] = cost[start][i];

pred[i] = start;

visited[i] = 0;

distance[start] = 0;

visited[start] = 1;

count = 1;

while (count < n - 1) {

mindistance = INFINITY;

for (i = 0; i < n; i++)

if (distance[i] < mindistance && !visited[i]) {

mindistance = distance[i];

nextnode = i;

Name: K.B. DHANUSH TEJ


Regd.No: 2023003706
}

visited[nextnode] = 1;

for (i = 0; i < n; i++)

if (!visited[i])

if (mindistance + cost[nextnode][i] < distance[i]) {

distance[i] = mindistance + cost[nextnode][i];

pred[i] = nextnode;

count++;

for (i = 0; i < n; i++)

if (i != start) {

printf("\nDistance from source to %d: %d", i, distance[i]);

int main() {

int Graph[MAX][MAX], i, j, n, u;

n = 7;

Graph[0][0] = 0;

Graph[0][1] = 0;

Graph[0][2] = 1;

Graph[0][3] = 2;

Graph[0][4] = 0;

Graph[0][5] = 0;

Graph[0][6] = 0;

Graph[1][0] = 0;

Graph[1][1] = 0;

Graph[1][2] = 2;

Graph[1][3] = 0;

Name: K.B. DHANUSH TEJ


Regd.No: 2023003706
Graph[1][4] = 0;

Graph[1][5] = 3;

Graph[1][6] = 0;

Graph[2][0] = 1;

Graph[2][1] = 2;

Graph[2][2] = 0;

Graph[2][3] = 1;

Graph[2][4] = 3;

Graph[2][5] = 0;

Graph[2][6] = 0;

Graph[3][0] = 2;

Graph[3][1] = 0;

Graph[3][2] = 1;

Graph[3][3] = 0;

Graph[3][4] = 0;

Graph[3][5] = 0;

Graph[3][6] = 1;

Graph[4][0] = 0;

Graph[4][1] = 0;

Graph[4][2] = 3;

Graph[4][3] = 0;

Graph[4][4] = 0;

Graph[4][5] = 2;

Graph[4][6] = 0;

Graph[5][0] = 0;

Graph[5][1] = 3;

Name: K.B. DHANUSH TEJ


Regd.No: 2023003706
Graph[5][2] = 0;

Graph[5][3] = 0;

Graph[5][4] = 2;

Graph[5][5] = 0;

Graph[5][6] = 1;

Graph[6][0] = 0;

Graph[6][1] = 0;

Graph[6][2] = 0;

Graph[6][3] = 1;

Graph[6][4] = 0;

Graph[6][5] = 1;

Graph[6][6] = 0;

u = 0;

Dijkstra(Graph, n, u);

return 0;

OUTPUT:
Distance from source to 1: 5

Distance from source to 2: 1

Distance from source to 3: 2

Distance from source to 4: 4

Distance from source to 5: 6

Distance from source to 6: 3

=== Code Execution Successful ===

Name: K.B. DHANUSH TEJ


Regd.No: 2023003706

You might also like