zoukankan      html  css  js  c++  java
  • 深度优先搜索与广度有限搜索的比较

    前置条件

            一棵树,满足以下条件:

    • 每个树的节点至多可以有w个扇出,即分支节点可以有n个子节点。
    • 树都高度为h,即,树共有h+1层。

    时间复杂度

          深度优先搜索与广度优先搜索的最坏情况都是最后一个叶节点代表目标节点,那么二者的时间复杂度都是:w0+w1+w2+……+wh = O(h w^h)。

    空间复杂度

           深度优先搜索的空间复杂度的最坏情况是一直展开,直到树的最后一层的第一个节点,栈中包含有树的第二层以及h-1个节点,其空间复杂度是:w + h - 1 = O(w+h)。

           广度优先搜索的空间复杂度的最坏情况是队列中包含有最后一层的节点,其空间复杂度是:wh=O(wh)。

    使用场合

           深度优先搜索可以尽快的找到一个可行解,可用于在优化问题中进行剪支。

           广度优先搜索可以尽快的找打一个子问题的最优解。 

  • 相关阅读:
    53. Maximum Subarray
    64. Minimum Path Sum
    28. Implement strStr()
    26. Remove Duplicates from Sorted Array
    21. Merge Two Sorted Lists
    14. Longest Common Prefix
    7. Reverse Integer
    412. Fizz Buzz
    linux_修改域名(centos)
    linux_redis常用数据类型操作
  • 原文地址:https://www.cnblogs.com/zqybegin/p/13598033.html
Copyright © 2011-2022 走看看