摘要:
1,Flood fill算法的介绍
2,Flood fill算法的DFS实现
3,Flood fill算法的BFS实现
4,Flood fill算法关于无向图连通性的判断
1,Flood fill算法的介绍
今天本来是打算介绍无向图的连通性,但无向图的连通性判断方式比较多,有DFS,BFS,并查集,Floyd算法,还有最小生成树都可以判断。但前两种方式和我们后面要讲的Flood fill算法非常类似,所以这里就单独拿出来讲。
Flood fill算法也叫泛洪算法,也叫洪水填充算法,其思路类似洪水从一个区域扩散到所有能到达的区域而得名。
根据是否考虑对角线方向的位置,算法分为四路算法(不考虑对角线方向的位置)和八路算法(考虑对角线方向的位置),如下图所示。
如下图所示,假如矩阵中的值只有 0 和 1 ,从红色值为 1 的位置开始,与它邻接并且值为 1 的都填充为新的值 2 ,我们只考虑四路算法,填充的结果如下图所示:
2,Flood fill算法的DFS实现
Flood fill算法实现原理比较简单,可以使用《深度优先搜索(DFS)》也可以使用《宽度优先搜索(BFS)》,下面我们通过动画来看下DFS实现Flood fill算法的步骤。