在一个算法中,使用递归还是迭代是一件很头痛的事情。总的来说,递归的优点很多,适合一些分治算法的实现,而缺点也很多,比如消耗很多的临时空间,有时候还会因为重叠子问题的存在而降低算法的性能。迭代拥有记忆的功能,不仅能够节省一部分临时空间,而且还可以省去很多子问题求解的麻烦。
值得注意的地方有:
1 一般在树形结构中往下走的话,最好使用迭代,比如堆中的向下调整操作。
在一个算法中,使用递归还是迭代是一件很头痛的事情。总的来说,递归的优点很多,适合一些分治算法的实现,而缺点也很多,比如消耗很多的临时空间,有时候还会因为重叠子问题的存在而降低算法的性能。迭代拥有记忆的功能,不仅能够节省一部分临时空间,而且还可以省去很多子问题求解的麻烦。
值得注意的地方有:
1 一般在树形结构中往下走的话,最好使用迭代,比如堆中的向下调整操作。