① 递归算法是什么
递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。
递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。
计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。
② 什么是迭代,什么又是递归
“递归”和“迭代”的区别如下:
1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合。
③ 什么是递归
程序调用自身就叫做递归。
递归一般用来算一些比较麻烦的算法问题。
递归跟循环的区别,循环注重过程,而递归值注重结果。
简单的来说就是:用循环能实现的,递归一般可以实现,但是能用递归实现的,循环不一定能。因为有些题目①只注重循环的结束条件和循环过程,而往往这个结束条件不易表达(也就是说用循环并不好写);②只注重循环的次数而不注重循环的开始条件和结束条件(这个循环更加无从下手了)。
要想理解递归一时半会也弄不明白。但是写递归需要记住三个步骤。
1.首先去找临界值,即无需计算,获得的值。
2. 找这一次和上一次的关系
3. 假设当前函数已经可以使用,调用自身计算上一次和这一次的关系。
④ 计算机里面什么是递归
在数学和计算机科学中,当一类对象或方法可以由两个属性定义时,它们表现出递归行为:
简单的基线条件---不使用递归产生答案的终止情况
一组规则将所有其他情形缩减到基线条件
例如,以下是某人祖先的递归定义:
某人的父母是他的祖先(基线条件)
某人祖先的祖先也是他的祖先(递归步骤)
斐波那契数列是递归的经典例子:
Fib(0) = 1 基线条件1;
Fib(1) = 1 基线条件2;
对所有整数n,n > 1时:Fib(n) = (Fib(n-1) + Fib(n-2))。
许多数学公理基于递归规则。例如,皮亚诺公理对自然数的形式定义可以描述为:0是自然数,每个自然数都有一个后继数,它也是自然数。通过这种基线条件和递归规则,可以生成所有自然数的集合。
递归定义的数学对象包括函数、集合,尤其是分形。
递归还有多种开玩笑的“定义”。
非正式定义
俄罗斯娃娃或俄罗斯套娃是递归概念的一个物理艺术例子。
自1320年乔托的Stefaneschi三联画问世以来,递归就一直用于绘画。它的中央面板包含红衣主教Stefaneschi的跪像,举着三联画本身作为祭品。
M.C. Eschers 印刷画廊 (1956)描绘了一个扭曲的城市,其中包含一个递归包含图片的画廊,因此无限。
⑤ C语言中的递归是什么意思
递归就是递推公式的模拟
函数直接间接的调用自己,一直到可以直接得到结果为止。
必须有一个可以不用递归,直接完成的情况。并且总是能够达到。
不然就是害自己了,你的程序永不结束,直到堆栈空间用完,程序或系统崩溃,莫名奇妙的退出。
真正的程序里,不会出现 阶乘运算、级数运算、幂指数运算等方面使用递归的代码。
这些完全可以使用迭代,而且高效。
递归用在树,图这样的数据结构上以及一些排序算法上,非常自然,而非递归算法却比较难懂,而且还不好实现.
你这个怎么这么象二叉树的先根遍历。
⑥ 什么是递归程序递归程序的优缺点是什么
递归程序是指在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的程序。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。满足使用递归的条件:
子问题为同类事物,且更简单
必须有个出口
优点:
代码简洁
符合思维习惯,容易理解
缺点:
效率较低
递归层次太深,耗内存且容易栈溢出一定要使用的话,最好使用缓存避免相同的计算,限制递归调用的次数
⑦ 在C语言中什么叫递归
递归:就是自己调自己,但是没终止条件会死循环,所以你的递归代码里有结束自调自的条件,这样就创造了有限次的循环(代码中你看不到for或foreach但是有循环发生)
⑧ 递归是什么意思
按照某一包含有限步数的法则或公式对一个或多个前面的元素进行运算。
递归做为一种算法在程序设计语言中广泛应用。
使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。
⑨ C语言什么是递归
递归方法的概念
类方法成员间允许相互调用,也可以自己调用自己。类的方法如果在方法体内直接或间接地自己调用自己就称为递归方法。
递归基本思想就是“自己调用自己”。递归方法实际上体现了“依此类推”、“用同样的步骤重复”这样的思想,它可以用简单的程序来解决某些复杂的计算问题。
递归调用在完成阶乘运算、级数运算、幂指数运算等方面特别有效。
在执行递归操作时,C#语言把递归过程中的信息保存在堆栈中。如果无限循环地递归,或者递归次数太多,则产生“堆栈溢出”错误
例:用递归方法求阶乘。利用的数学公式为n!=n*(n-1)!。当n=0时,n!=1。
代码如下:
public long F(int n)
{
if (n==1)
return 1;
else
return n*F(n-1);
}