不是很懂递归和直接使用栈的效率问题

qweqweqwexdd4 2012-10-09 07:39:25
以前自学过数据结构,知道怎么使用栈来实现递归,而且书上写的是,用栈实现递归的话效率比较高,我比较疑惑,因为编译器也是对递归用栈来模拟的,只是方法比较通用的,效率会比较低,那么有必要自己对每一个递归都用栈来实现吗,主要是这段递归代码会运行非常多的次数。
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WizardOz 2012-10-10
  • 打赏
  • 举报
回复
自己用栈来模拟递归的话,只有和算法相关的数据需要入栈;如果直接递归的话,一些函数的状态,局部变量什么的会入栈。
换句话说,就是入栈数据多少的问题吧。
不过个人觉得,这个并不是一个数量级的差别,从空间复杂度的角度讲,是一样的。所以如果是我写程序的话,一般会直接递归调用。
qweqweqwexdd4 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

自己用栈来模拟递归的话,只有和算法相关的数据需要入栈;如果直接递归的话,一些函数的状态,局部变量什么的会入栈。
换句话说,就是入栈数据多少的问题吧。
不过个人觉得,这个并不是一个数量级的差别,从空间复杂度的角度讲,是一样的。所以如果是我写程序的话,一般会直接递归调用。
[/Quote]
谢谢解答,同时感谢2楼
mkcing 2012-10-09
  • 打赏
  • 举报
回复
这个和内存管理有关,程序的内存分为栈区和堆区,好像维护堆区比较费时间
qweqweqwexdd4 2012-10-09
  • 打赏
  • 举报
回复
顺便问一下,对于布尔型变量,使用bool的好,还是BOOL的好,32位的cpu的话,因为这类变量也会用很多次。

33,010

社区成员

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

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