Topological Sorting
Topological Sorting
is a linear ordering of Vertices
in a Directed Acyclic Graph
(also known as DAG
),
such that for every directed edge , vertex appears before [1].
There might be more than one orders.
In fact, for the following graph:
We can have these three orders:
[a, b, c, d]
[a, c, b, d]
[a, c, d, b]
Usage
This sorting is widely used to schedule tasks, solve dependencies and plan course prerequisite.
The Kahn's algorithm can be used to implement such sorting.
It uses in-degrees
of vertices. The vertices with zero in-degrees
are repeatedly removed and the corresponding neighbors' in-degrees are updated accordingly.
Example
The Course Schedule is a classic problem where we can apply Topological Sorting
by using the Kahn's algorithm
.