Я реализую в своем приложении четырехстороннюю заливку, псевдокод приведен ниже
Flood-fill (node, target-color, replacement-color):
1. If the color of node is not equal to target-color, return.
2. Set the color of node to replacement-color.
3. Perform Flood-fill (one step to the west of node, target-color, replacement-color).
Perform Flood-fill (one step to the east of node, target-color, replacement-color).
Perform Flood-fill (one step to the north of node, target-color, replacement-color).
Perform Flood-fill (one step to the south of node, target-color, replacement-color).
4. Return
Это довольно медленно и иногда заполняет стек вызовов! И мне действительно не удалось рассчитать сложность этого алгоритма.
Может кто-нибудь предложить лучший алгоритм для его реализации?