谁能说说递归和迭代有什么区别?
发布网友
发布时间:2022-04-29 15:32
我来回答
共4个回答
热心网友
时间:2023-10-15 19:11
简单来说,递归就是自己调用自己,如:
int abc(...)
{
if(...) //递归终止条件
{ return abc(...); }
return 0;
}
而递归是重复一组指令,不断地根据变量的旧值推出新值,如:
for(; ; ;) //迭代终止条件
{
a = b + c;
b = a;
c = a;
}
热心网友
时间:2023-10-15 19:11
形象的说,迭代就是不断的裹上洋葱皮,递归就是不断剥去洋葱皮,最终是达到同一个目的,应该说两者有点逆过程的意思。
热心网友
时间:2023-10-15 19:11
简单来说,递归就是自己调用自己,如:
int abc(...)
{
if(...) //递归终止条件
{ return abc(...); }
return 0;
}
而递归是重复一组指令,不断地根据变量的旧值推出新值,如:
for(; ; ;) //迭代终止条件
{
a = b + c;
b = a;
c = a;
}
热心网友
时间:2023-10-15 19:11
形象的说,迭代就是不断的裹上洋葱皮,递归就是不断剥去洋葱皮,最终是达到同一个目的,应该说两者有点逆过程的意思。
热心网友
时间:2023-10-15 19:11
zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。
热心网友
时间:2023-10-15 19:11
简单来说,递归就是自己调用自己,如:
int abc(...)
{
if(...) //递归终止条件
{ return abc(...); }
return 0;
}
而递归是重复一组指令,不断地根据变量的旧值推出新值,如:
for(; ; ;) //迭代终止条件
{
a = b + c;
b = a;
c = a;
}
热心网友
时间:2023-10-15 19:11
简单来说,递归就是自己调用自己,如:
int abc(...)
{
if(...) //递归终止条件
{ return abc(...); }
return 0;
}
而递归是重复一组指令,不断地根据变量的旧值推出新值,如:
for(; ; ;) //迭代终止条件
{
a = b + c;
b = a;
c = a;
}
热心网友
时间:2023-10-15 19:11
形象的说,迭代就是不断的裹上洋葱皮,递归就是不断剥去洋葱皮,最终是达到同一个目的,应该说两者有点逆过程的意思。
热心网友
时间:2023-10-15 19:11
zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。
热心网友
时间:2023-10-15 19:12
一、含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
二、结构不同:递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。以上内容参考:百度百科-递归
热心网友
时间:2023-10-15 19:11
形象的说,迭代就是不断的裹上洋葱皮,递归就是不断剥去洋葱皮,最终是达到同一个目的,应该说两者有点逆过程的意思。
热心网友
时间:2023-10-15 19:11
简单来说,递归就是自己调用自己,如:
int abc(...)
{
if(...) //递归终止条件
{ return abc(...); }
return 0;
}
而递归是重复一组指令,不断地根据变量的旧值推出新值,如:
for(; ; ;) //迭代终止条件
{
a = b + c;
b = a;
c = a;
}
热心网友
时间:2023-10-15 19:11
zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。
热心网友
时间:2023-10-15 19:11
zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。
热心网友
时间:2023-10-15 19:11
形象的说,迭代就是不断的裹上洋葱皮,递归就是不断剥去洋葱皮,最终是达到同一个目的,应该说两者有点逆过程的意思。
热心网友
时间:2023-10-15 19:11
zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。
热心网友
时间:2023-10-15 19:12
一、含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
二、结构不同:递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。以上内容参考:百度百科-递归
热心网友
时间:2023-10-15 19:12
一、含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
二、结构不同:递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。以上内容参考:百度百科-递归
热心网友
时间:2023-10-15 19:12
一、含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
二、结构不同:递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。以上内容参考:百度百科-递归
热心网友
时间:2023-10-15 19:12
一、含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。
二、结构不同:递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。以上内容参考:百度百科-递归