【求助】深度优先和广度优先的优缺点

omarchen 2005-06-11 07:01:10
求深度优先和广度优先的优缺点,up者有分
...全文
2321 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlwlwl 2005-06-23
  • 打赏
  • 举报
回复
备注:还要根据物理存储结构来决定
andyhugb 2005-06-22
  • 打赏
  • 举报
回复
具体情况具体对待
tatbaby 2005-06-18
  • 打赏
  • 举报
回复
up
yangfasheng 2005-06-18
  • 打赏
  • 举报
回复
应该要看具体问题来定吧.
galois_godel 2005-06-18
  • 打赏
  • 举报
回复
遍历顺序不一样,
没有绝对的优缺点,
zzwu 2005-06-16
  • 打赏
  • 举报
回复
如果深度见不到“底”时,就无法用dps, 只能用bps
chenzhichao2008 2005-06-16
  • 打赏
  • 举报
回复
实际运用中深度还是比较有用的
广度占用内存太大了
关于效率问题
深度做一下优化也不会输给广度(如按权值排序一下 ,再做个剪枝 )
wxt 2005-06-16
  • 打赏
  • 举报
回复
深度优先适合深度大的树,不适合广度大的树,广度优先正相反。
所谓深度大的树就是指起始节点到目标节点的中间节点多(可以理解成问题有很多中间解,这些解都可以认为是部分正确的,但要得到完全正确的结果(目标节点)就必须先依次求出这些中间解。)
所谓广度大的树就是指起始节点到目标节点的可能节点多(可以理解成问题有很多可能解,这些解要么正确,要么错误。要得到完全正确的结果(目标节点)就必须依次判断这些可能解是否正确。)

所以如果你面对的问题有很多解(目标节点不唯一),而你只想快点找到其中一个,用深度优先比较合适(因为解稍偏离正确结果,后面的节点就不再判断了,这种方法类似这种想法:反正还有其他可能的路可走,不用再这条路上走到头),如果问题的解是唯一的(或你只想要最正确的那一个解)用广度优先就比较合适。
MagicCarmack 2005-06-15
  • 打赏
  • 举报
回复
传说UP有分


偶UP
NowCan 2005-06-13
  • 打赏
  • 举报
回复
呵呵,再比如一个24数码问题,用bfs,撑死你。
mmmcd 2005-06-12
  • 打赏
  • 举报
回复
BFS是通过牺牲空间来节省时间的一种方法
mycoldboy 2005-06-12
  • 打赏
  • 举报
回复
根据情况不同,采用不同的方法,比如一个最简单的把数码问题,用dfs?算死你,呵呵
mycoldboy 2005-06-12
  • 打赏
  • 举报
回复
如果完全搜索的话,显然dfs和bfs是间复杂度是一样的
omarchen 2005-06-12
  • 打赏
  • 举报
回复
到底是BFS节约时间还是DFS节约?mmmcd(超超)和 lanphaday(恋花蝶) 是不是矛盾啊?
赖勇浩 2005-06-11
  • 打赏
  • 举报
回复
宽优的话,占内存多,能找到最优解,必须遍历所有分枝

深优的话,占内存少,能找到最优解(一定条件下),但能很快找到接近解(优点),可能不必遍历所有分枝(也就是速度快)。

在更多的情况下,深优是比较好的方案。
mycoldboy 2005-06-11
  • 打赏
  • 举报
回复
这些都不是问题,最重要的是剪枝优化,当然最好能用dp来完成,高效!
mycoldboy 2005-06-11
  • 打赏
  • 举报
回复
深搜一般来说时间复杂度大但空间复杂度小,广搜空间相反

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧