《经典图论算法》Flood fill算法

科技   2024-11-19 18:31   上海  

摘要:

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算法的步骤。

数据结构和算法
王一博,《算法秘籍》作者,1000多页的pdf算法题我也已经整理完成,在公众号“数据结构和算法”中回复关键字“pdf”即可下载。
 最新文章