树:BST中堆栈实现和Traversal递归调用之间的性能比较

时间:2018-05-05 09:07:14

标签: algorithm performance data-structures time-complexity binary-search-tree

我目前正在学习数据结构和算法。我在二叉搜索树中有两种遍历方法。 (1) - 堆叠实施
 (2) - 递归调用方法

哪一个表现明智更好?

1 个答案:

答案 0 :(得分:1)

只要算法保持不变,性能也应该相同。在您的情况下:性能保持不变,因为在这两种情况下,都使用堆栈。

In,堆栈实现程序员显式维护堆栈以进行遍历。在递归调用方法中,程序内部调用堆栈用于遍历。

修改

  

那么运行时复杂度呢?

两种情况下的运行时间复杂度都相同。但执行时间可能因执行而异。由于没有提供代码/实现,"在一般意义上,递归可能需要更长的时间,因为

  

递归(天真地实现)涉及推动堆栈帧,   从堆栈中跳跃,返回和弹出。

有关详细信息,请查看以下链接:

  1. Is recursion faster than loops
  2. Looping versus recursion for improved application performance