发布网友 发布时间:2022-04-20 09:42
共6个回答
懂视网 时间:2022-04-20 14:03
迭代与递归的区别在于:递归是由自己延伸出去的,而迭代是得到新的结果并替代了自己。
1、“递归”是指函数、过程、子程序在运行过程序中直接或间接调用自身而产生的重入现像。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。
2、“迭代”的含义是:重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
热心网友 时间:2022-04-20 11:11
“递归”和“迭代”的区别如下:
1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合。
2、迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B。
3、递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出。
热心网友 时间:2022-04-20 12:29
递归和迭代都是循环的一种。
简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
递归的例子,比如给定一个整数数组,采用折半查询返回指定值在数组中的索引,假设数组已排序,为方便描述,假设元素都为正数,数组长度为2的整数倍。
折半查询是查询的一种,比遍历所有元素要快很多。
int Find(int *ary,int index,int len,int value)
迭代经典例子就是实数的累加,比如计算1-100所有实数的和。
int v=1;热心网友 时间:2022-04-20 14:04
简单说来
迭代就是:每次函数调用的输出结果已经“在手头”,该结果作为下一次调用的输入。例如:
while(N) { s = fun(s);} // 等号左边的s已经暂存
而递归从形式上讲:在最后一次函数调用完成之间,期间任何一次调用的结果都是“未知的”。例如:
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Tree{
vector<TreeNode*> m_root;
public:
void Traverse(TreeNode* root);
}
void Tree::Traverse(TreeNode* root){
if(!root) return;
m_root.push_back(root);
Traverse(root->left); //你尚且看不到root的全貌
Traverse(root->right); //你尚且看不到root的全貌
}
热心网友 时间:2022-04-20 15:55
递归:程序调用自身的编程技巧称为递归,是函数自己调用自己。
使用递归要注意的有两点:
1)递归就是在过程或函数里面调用自身;
2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口.
3)递归包含回溯和递推两个阶段。
迭代:利用变量的原值推算出变量的一个新值,如果递归是自己调用自己的话,迭代就是A不停的调用B。
递推:它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复。
递归与递推区别:递归的步骤中包含递推,如一个规模为n的问题,递归首先通过回溯将问题回溯到n-1,n-2……,然后再通过递推从1的结果一直递推到n。
递归与迭代的区别:递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.
可以这么理解,递推和迭代都是正向的将一个复杂问题分解为小问题,一步一步得出结果;而递归是逆向的,多了一步回溯的过程。
如果有其他编程或测试的问题,可关注搜狗测试公众号或www.sogouqa.com。
热心网友 时间:2022-04-20 18:03
递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。
递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。
使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。迭代和递归过程都可以无限进行:如果循环条件测试永远不变成false,则迭代发生无限循环;如果递归永远无法回推到基本情况,则发生无穷递归。
递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量。而迭代是循环的一种形式,这种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少;也就是说,循环的每一步都必须执行一个有限的过程,并留下较少的步骤。