Looking for efficient graph algorithms? This paper presents algorithms for partitioning a graph into connected components, biconnected components, and simple paths. The algorithm for partitioning a graph into simple paths iteratively produces a new path between two vertices already on paths, starting from a dynamically specified vertex.
When executed on a random access computer, each algorithm requires time and space proportional to max(
Published in Communications of the ACM, this article aligns with the journal's focus on computer science, algorithms, and software development. It introduces practical algorithms with well-defined performance characteristics, providing valuable tools for software engineers and computer scientists. The content addresses core topics in graph theory and algorithm design, making it relevant to the journal's audience.