我已经搜索过,但我似乎无法找到洪水填充算法(四向版本)的复杂性。大O符号的复杂程度究竟是什么?
答案 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次。例如,特定单元格可以通过其顶部,向下,左侧或右侧单元格调用。