非递归算法比较有哪些主要的优点和缺点 (非递归算法优缺点)
本文目录导航:
非递归算法比较有哪些主要的优点和缺点
非递归算法和递归算法的主要优缺点:非递归算法的优点:如果需要处理的数据规模比较大的时候,适合使用非递归算法。
缺点:程序代码的可读性差一些。
递归算法的优点:程序代码的可读性要比非递归算法的好,如果需要处理的数据量比较小的时候,适合使用递归算法。
缺点:当需要处理的数据规模比较大的时候,就不适合使用递归算法了。
因为递归算法涉及到对堆栈的频繁操作(入栈、出栈),系统效率会很低,严重的时候会导致系统崩溃。

递归算法有哪些优缺点?
递归算法包含的两个部分:
1、由其自身定义的与原始问题类似的更小规模的子问题(只有数据规模不同),它使递归过程持续进行,称为一般条件。
2、所描述问题的最简单的情况,它是一个能控制递归过程结束的条件,称为基本条件。(递归出口)
递归的定义:
如果一个对象部分地由它自身组成或按它自己定义,则称它是递归的,所以说递归就是函数/过程/子过程在运行过程中直接或间接调用自身而产生的重入现象。
递归的基本思想:
就是把一个规模大的问题分为若干个规模较小的子问题求解,而每一个子问题又可以分为几个规模更小的子问题。
基本上,所有的递归问题都可以用递推公式来表示。
最重要的一点就是假设子问题已经解决了,现在要基于已经解决的子问题来解决当前问题;或者说,必须先解决子问题,再基于子问题来解决当前问题或者可以这么理解:递归解决的是有依赖顺序关系的多个问题。
递归的优缺点:
优点:逻辑清楚,结构清晰,可读性好,代码简洁,效率高(拓展:DFS深度优先搜素,前中后序二叉树遍历)
缺点:函数调用开销大,空间复杂度高,有堆栈溢出的风险
非递归算法比较有哪些主要的优点和缺点
非递归算法和递归算法的主要优缺点:非递归算法的优点:如果需要处理的数据规模比较大的时候,适合使用非递归算法。
缺点:程序代码的可读性差一些。
递归算法的优点:程序代码的可读性要比非递归算法的好,如果需要处理的数据量比较小的时候,适合使用递归算法。
缺点:当需要处理的数据规模比较大的时候,就不适合使用递归算法了。
因为递归算法涉及到对堆栈的频繁操作(入栈、出栈),系统效率会很低,严重的时候会导致系统崩溃。