Skip to content
This repository has been archived by the owner on Oct 8, 2021. It is now read-only.

strongly_connected_components and strongly_connected_components_kosaraju run in quadratic time. #1560

Open
saolof opened this issue Apr 15, 2021 · 0 comments · May be fixed by #1559
Open

strongly_connected_components and strongly_connected_components_kosaraju run in quadratic time. #1560

saolof opened this issue Apr 15, 2021 · 0 comments · May be fixed by #1559

Comments

@saolof
Copy link

saolof commented Apr 15, 2021

Currently, because they break in the middle of loops without saving their state, the Tarjan and Kosaraju algorithms have a worse asymptotic complexity than their recursive versions. Instead of being O(V + E), they are O(V + Sum_v of degree(v)^2 ) . This means that they are very slow for graphs where some nodes have a very large degree, like star graphs of high order, or for example the Julia or NPM dependency graphs.

This is fixed for Tarjan in #1559 . Kosaraju can be fixed in the same way by adding a stack for large nodes and reusing the same type inference functions used when making Tarjan O(V + E).

@saolof saolof changed the title strongly_connected_components and strongly_connected_components_kojasaru run in quadratic time. strongly_connected_components and strongly_connected_components_kosaraju run in quadratic time. Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
1 participant