查看: 2294| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

关于递归和DFS思想的问题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
最近刷题刷的对于递归和DFS的思想有了新的思考,以前觉得是一回事,现在觉得两者是用来解决不同的问题的。网上查了下,大部分的解释是递归是一种实现,而DFS是一种算法。不过个人理解,两者都是算法只不过用来解决不同的问题。递归更倾向于将大规模转换为小规模问题求解,而DFS则是每层进行尝试,并不是将大规模问题转化成小规模问题。

不知道这么理解对不对。

上一篇:关于动态规划(Dynamic Programming)的一些进阶知识
下一篇:国内面试跟国外面试要刷的题有啥不同?
推荐
vrfancy 2018-9-29 14:12:58 | 只看该作者
全局:
DFS 强调是状态的搜索, 在一个stack结构上进行搜索就是dfs,可以写成 递归或者非递归形式。 递归 就是 同一个函数的不同规模的镶嵌调用。
回复

使用道具 举报

全局:
是一回事也不是一回事。。

递归(recursion)的做法是基于你function有1)base case 2) 有sub problem。 递归速度变快的方法是如果一直有same sub problem可以用memoization。

dfs这个名字是从图论里来的, 走的是节点, 或者说状态, 是状态的变化。 这个状态是否一定会变得更小, 不一定。 他只是visit 节点的一种方式方法, 对应的就是bfs。

这样看, 递归的状态也就是dfs里面的节点, 你当然可以用dfs的思想去做, 同样可以完全用bfs去做。
回复

使用道具 举报

🔗
ccyjava 2018-9-29 23:44:35 | 只看该作者
全局:
DFS是算法设计,递归是实现方式
回复

使用道具 举报

🔗
pkk5488 2018-9-30 00:49:07 | 只看该作者
全局:
dfs包含递归,是一种思想,除了递归还有traversal
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表