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

Worksheet - 3.2: Branch: BE-CSE UID:19BCS1014 Section/Group: KRG-2B Semester: 5th

The document is a worksheet for analyzing Dijkstra's algorithm to find the shortest paths in a graph with positive edge weights. It includes the pseudocode for Dijkstra's algorithm, C++ code implementing the algorithm, and sample output showing the distances from the source vertex to all other vertices.

Uploaded by

MaaChudaScribd
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)
27 views5 pages

Worksheet - 3.2: Branch: BE-CSE UID:19BCS1014 Section/Group: KRG-2B Semester: 5th

The document is a worksheet for analyzing Dijkstra's algorithm to find the shortest paths in a graph with positive edge weights. It includes the pseudocode for Dijkstra's algorithm, C++ code implementing the algorithm, and sample output showing the distances from the source vertex to all other vertices.

Uploaded by

MaaChudaScribd
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

WORKSHEET –3.

Student Name: Priyanshu Sahoo UID:19BCS1014


Branch: BE-CSE Section/Group: KRG-2B
Semester: 5th
Subject Name: DAA LAB Subject Code: CSP-309

AIM: Code and analyze to find shortest paths in a graph with positive edge weights
using Dijkstra’s algorithm..

ALGORITHM:

Step 1. INITIALIZE - SINGLE - SOURCE (G, s)


Step 2. S←∅

Step 3. Q←V

[G]
Step 4. while Q ≠ ∅

Step 5. do u ← EXTRACT - MIN (Q)


Step 6. S ← S ∪ {u}
Step 7. for each vertex v ∈ Adj [u]

Step 8. do RELAX (u, v, w)


CODE:

#include
<iostream> using
namespace std;
#include
<limits.h>

#define V 9

int minDistance(int dist[], bool sptSet[])


{

int min = INT_MAX,

min_index; for (int v = 0; v

< V; v++)
if (sptSet[v] == false && dist[v]
<= min) min = dist[v],
min_index = v;

return min_index;
}

void printSolution(int dist[])


{
cout <<"Vertex \t Distance from Source"
<< endl; for (int i = 0; i < V; i++) cout
<< i << " \t\t"<<dist[i]<< endl;
}
void dijkstra(int graph[V][V], int src)
{

int dist[V];
bool
sptSet[V];
for (int i = 0; i < V; i++)
dist[i] = INT_MAX, sptSet[i] =

false; dist[src] = 0;

for (int count = 0; count < V - 1;

count++) { int u =

minDistance(dist, sptSet);

sptSet[u] = true;

for (int v = 0; v < V; v++)

if (!sptSet[v] && graph[u][v] && dist[u] !=


INT_MAX && dist[u] + graph[u][v] < dist[v])
dist[v] = dist[u] + graph[u][v];
}

printSolution(dist);
}
int main()
{

int graph[V][V] = { { 0, 4, 0, 0, 0, 0, 0, 8, 0 },
{4,0,8,0,0,0,0,11,0},
{0,8,0,7,0,4,0,0,2},
{0,0,7,0,9,14,0,0,0},
{0,0,0,9,0,10,0,0,0}, { 0, 0,
4, 14, 10, 0, 2, 0, 0 },
{0,0,0,0,0,2,0,1,6},
{8,11,0,0,0,0,1,0,7},
{0,0,2,0,0,0,6,7,0}};
dijkstra(graph, 0);

return 0;
}

OUTPUT

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy