以递归方式迭代地编写BFS树遍历算法是否有任何优势?在我看来迭代是要走的路,因为它可以在一个简单的循环中实现:
递归有什么好处吗?它似乎更复杂,没有任何优势。
提前致谢...
答案 0 :(得分:0)
在考虑算法时,我们主要考虑时间复杂度和空间复杂度。 迭代BFS的时间复杂度为O(| V | + | E |),其中| V |是顶点数,| E |是图中的边数。递归BFS也是如此。 并且迭代BFS的空间复杂度为O(| V |)。递归BFS也是如此。
从时间复杂度和空间复杂度的角度来看,这两种算法没有区别。由于迭代BFS易于理解,因此人们喜欢迭代BFS也就不足为奇了。