I want to understand how to compute big-O for a dense versus sparse graph.
“Algorithms in a nutshell” says that for sparse graph, O(E) is O(V) and for dense graph O(E) is closer to O(V^2). Does anyone know how is that derived?
I want to understand how to compute big-O for a dense versus sparse graph.
Share
It’s not derived, it’s a definition. In a fully connected (directed) graph with self-loops, the number of edges |E| = |V|² so the definition of a dense graph is reasonable. The definition of a sparse graph is one where O(|E|) = O(|V|), so there’s a constant maximum number of edges per vertex.
Note that if the number of edges is much smaller, e.g. O(lg |V|), then it’s still O(|V|) as well. One could imagine a “semi-sparse” class of graphs with |E| = O(|V| lg |V|) or something like that, but I personally have never encountered such a class in practice.