Flooding algorithm

A flooding algorithm is an algorithm for distributing material to every part of a graph. The name derives from the concept of inundation by a flood.

Flooding algorithms are used in computer networking and graphics. Flooding algorithms are also useful for solving many mathematical problems, including maze problems and many problems in graph theory.

Different flooding algorithms can be applied for different problems, and run with different time complexities. For example, the flood fill algorithm is a simple but relatively robust algorithm that works for intricate geometries and can determine which part of the (target) area that is connected to a given (source) node in a multi-dimensional array, and is trivially generalized to arbitrary graph structures. If there instead are several source nodes, there are no obstructions in the geometry represented in the multi-dimensional array, and one wishes to segment the area based on which of the source nodes the target nodes are closest to, while the flood fill algorithm can still be used, the jump flooding algorithm is potentially much faster as it has a lower time complexity. Unlike the flood fill algorithm, however, the jump flooding algorithm cannot trivially be generalized to unstructured graphs.