洪水填充四向算法复杂度

时间:2015-03-20 06:22:53

标签: time-complexity

我已经搜索过,但我似乎无法找到洪水填充算法(四向版本)的复杂性。大O符号的复杂程度究竟是什么?

3 个答案:

答案 0 :(得分:1)

泛洪填充算法的复杂性与填充区域中的像素数成比例。所以,如果你有例如一个正方形,M是正方形中的像素数,N是正方形边长,则M = N ^ 2,复杂度为O(M)= O(N ^ 2)。

顺便说一句,这个问题已在Stackoverflow的评论中得到解答。见How can I improve the performance of my flood-fill routine?

答案 1 :(得分:1)

在最坏的情况下,矩阵的所有单元都将被覆盖。

就复杂性时间而言,该算法将等于递归的算法:O(N×M)O(N×M),其中N和M是输入矩阵的维数。关键的想法是,在两种算法中,每个节点最多只处理一次。

请参考以下链接以获得更好的理解和更多案例:

https://www.hackerearth.com/practice/algorithms/graphs/flood-fill-algorithm/tutorial/

答案 2 :(得分:1)

时间复杂度为O(4 * m n)=(m n),因为矩阵的每个单元最多被处理4次。例如,特定单元格可以通过其顶部,向下,左侧或右侧单元格调用。