of 14 /14
CS223 Advanced Data Structures and Algorithms 1 Dijkstra’s Shortest Path Algorithm Dijkstra’s Shortest Path Algorithm Neil Tang Neil Tang 03/25/2008 03/25/2008

decker
• Category

## Documents

• view

50

0

description

Dijkstra’s Shortest Path Algorithm Neil Tang 03/25/2008. Class Overview. The shortest path problem Applications Dijkstra’s algorithm Implementation and time complexities. Shortest Path Problem. Weighted path length (cost): The sum of the weights of all links on the path. - PowerPoint PPT Presentation

### Transcript of Dijkstra’s Shortest Path Algorithm Neil Tang 03/25/2008

CS223 Advanced Data Structures and Algorithms 1

Dijkstra’s Shortest Path Algorithm Dijkstra’s Shortest Path Algorithm

Neil TangNeil Tang03/25/200803/25/2008

CS223 Advanced Data Structures and Algorithms 2

Class OverviewClass Overview

The shortest path problem

Applications

Dijkstra’s algorithm

Implementation and time complexities

CS223 Advanced Data Structures and Algorithms 3

Shortest Path ProblemShortest Path Problem

Weighted path length (cost): The sum of the weights of all links on the path.

The single-source shortest path problem: Given a weighted graph G and a source vertex s, find the shortest (minimum cost) path from s to every other vertex in G.

CS223 Advanced Data Structures and Algorithms 4

An ExampleAn Example

CS223 Advanced Data Structures and Algorithms 5

Another ExampleAnother Example

CS223 Advanced Data Structures and Algorithms 6

ApplicationsApplications

Digital map

Computer network

Travel planning

CS223 Advanced Data Structures and Algorithms 7

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 8

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 9

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 10

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 11

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 12

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 13

Dijkstra’s AlgorithmDijkstra’s Algorithm

CS223 Advanced Data Structures and Algorithms 14

Implementation and Time ComplexitiesImplementation and Time Complexities

Trivial: O(|V|2 + |E|) = O(|V|2)

Heap: deleteMin |V| times + decreaseKey |E| times

O(|V|log|V| + |E|log|V|) = O (|E|log|V|)

Fibonacci heap: O(|E| + |V|log|V|)