Kosaraju's algorithm
E1045495
Kosaraju's algorithm is a graph traversal method used to efficiently find all strongly connected components in a directed graph.
All labels observed (2)
| Label | Occurrences |
|---|---|
| Kosaraju's algorithm canonical | 2 |
| Sharir's algorithm for strongly connected components | 1 |
How this entity was disambiguated
This entity first appeared as the object of triple T13529819 — resolving that mention is where its identity was fixed. The disambiguator weighed these candidate entities and picked the highlighted one (or “None”, minting a new entity). This is how homonymy is resolved: the same surface form can point to different entities.
NED1
Entity disambiguation (via context triple)
gpt-5-mini-2025-08-07
Target entity: Kosaraju's algorithm Context triple: [S. Rao Kosaraju, knownFor, Kosaraju's algorithm]
-
A.
Tarjan's strongly connected components algorithm
Tarjan's strongly connected components algorithm is a classic linear-time graph algorithm that efficiently identifies all strongly connected components in a directed graph using depth-first search and low-link values.
-
B.
union–find data structure
The union–find data structure is an efficient algorithmic structure that maintains disjoint sets and supports fast union and find operations, widely used in graph algorithms such as Kruskal’s minimum spanning tree.
-
C.
Bellman–Ford algorithm
The Bellman–Ford algorithm is a graph shortest-path algorithm that can handle negative edge weights and detect negative cycles, often used in routing and network optimization.
-
D.
Cristian's algorithm
Cristian's algorithm is a clock synchronization method in distributed systems that estimates accurate time on client machines by querying a time server and adjusting for message delays.
-
E.
Lipton–Tarjan separator theorem
The Lipton–Tarjan separator theorem is a fundamental result in graph theory that shows any planar graph can be efficiently divided into roughly equal parts by removing only a relatively small set of vertices, enabling faster algorithms for many computational problems.
- F. None of above. chosen
- G. Unsure - the case is ambiguous/there is not enough information to decide.
NED2
Entity disambiguation (via description)
gpt-5-mini-2025-08-07
Target entity: Kosaraju's algorithm Target entity description: Kosaraju's algorithm is a graph traversal method used to efficiently find all strongly connected components in a directed graph.
-
A.
Tarjan's strongly connected components algorithm
Tarjan's strongly connected components algorithm is a classic linear-time graph algorithm that efficiently identifies all strongly connected components in a directed graph using depth-first search and low-link values.
-
B.
union–find data structure
The union–find data structure is an efficient algorithmic structure that maintains disjoint sets and supports fast union and find operations, widely used in graph algorithms such as Kruskal’s minimum spanning tree.
-
C.
Bellman–Ford algorithm
The Bellman–Ford algorithm is a graph shortest-path algorithm that can handle negative edge weights and detect negative cycles, often used in routing and network optimization.
-
D.
Cristian's algorithm
Cristian's algorithm is a clock synchronization method in distributed systems that estimates accurate time on client machines by querying a time server and adjusting for message delays.
-
E.
Lipton–Tarjan separator theorem
The Lipton–Tarjan separator theorem is a fundamental result in graph theory that shows any planar graph can be efficiently divided into roughly equal parts by removing only a relatively small set of vertices, enabling faster algorithms for many computational problems.
- F. None of above. chosen
Statements (48)
| Predicate | Object |
|---|---|
| instanceOf |
graph algorithm
ⓘ
strongly connected components algorithm ⓘ |
| alternativeName | Kosaraju–Sharir algorithm NERFINISHED ⓘ |
| assumes | graph is finite ⓘ |
| canBeUsedFor |
condensation of directed graph
ⓘ
finding strongly connected components in control-flow graphs ⓘ |
| category | algorithm design techniques ⓘ |
| complexityClass | linear-time algorithm ⓘ |
| correctnessBasedOn |
duality between graph and its transpose
ⓘ
properties of DFS finishing times ⓘ |
| domain | directed graphs ⓘ |
| field |
computer science
ⓘ
graph theory ⓘ |
| guarantees | partition of vertices into strongly connected components ⓘ |
| handles |
graphs with cycles
ⓘ
graphs with multiple strongly connected components ⓘ |
| implementationDetail |
first DFS can be done on original graph
ⓘ
second DFS is done on transposed graph ⓘ vertices processed in decreasing order of first-pass finish times ⓘ |
| input | directed graph ⓘ |
| inputConstraint | graph may be disconnected ⓘ |
| namedAfter | S. Rao Kosaraju NERFINISHED ⓘ |
| notableFeature |
conceptually simple
ⓘ
requires two full DFS traversals ⓘ |
| numberOfPasses | 2 GENERATED ⓘ |
| originallyPublishedIn | journal article by S. Rao Kosaraju ⓘ |
| output | set of strongly connected components ⓘ |
| property |
linear time in size of graph
ⓘ
two-pass DFS algorithm NERFINISHED ⓘ |
| relatedTo |
Gabow's algorithm
NERFINISHED
ⓘ
Tarjan's algorithm NERFINISHED ⓘ |
| requires |
ability to compute graph transpose
ⓘ
stack or ordering of vertices by finish time ⓘ |
| solves | strongly connected components problem ⓘ |
| spaceComplexity | O(V + E) ⓘ |
| step |
first DFS to compute finishing times
ⓘ
second DFS in order of decreasing finishing times ⓘ transpose graph ⓘ |
| taughtIn |
graph theory courses
ⓘ
undergraduate algorithms courses ⓘ |
| timeComplexity | O(V + E) ⓘ |
| usedIn |
model checking
ⓘ
network analysis ⓘ static program analysis ⓘ |
| usesTraversal | depth-first search NERFINISHED ⓘ |
| worksOn |
adjacency list representation
ⓘ
adjacency matrix representation ⓘ |
| yearProposed | 1978 ⓘ |
How these facts were elicited
The pipeline generated the facts above by prompting gpt-5.1 with this entity's name + description and the instruction below.
Instruction
You are a knowledge base construction expert. Given a subject entity and a description of it, return factual statements that you know for the subject as a JSON list of dictionaries(triples), where keys must be "subject", "predicate" and "object". The number of facts may be very high, between 25 to 50 or more, for very popular subjects. For less popular subjects, the number of facts can be very low, like 5 or 10. # Requirements - If you don't know the subject at all, return an empty list. - If the subject is not a named entity, return an empty list. - Include at least one triple where predicate is "instanceOf". - Do not get too wordy. - Separate several objects into multiple triples with one object.
Input
Subject: Kosaraju's algorithm Description of subject: Kosaraju's algorithm is a graph traversal method used to efficiently find all strongly connected components in a directed graph.
Referenced by (3)
Full triples — surface form annotated when it differs from this entity's canonical label.
this entity surface form:
Sharir's algorithm for strongly connected components