recursion
来源:岁月联盟
时间:2010-02-08
在计算机程序里,一个递归(名词,读作ree-KUHR-zhion)是一个递归的 (形容词)程序,而且递归的有两个相关的意义: 1) 一个递归的程序或常式有能力调用它本身。 这通常意谓着当它调用它本身的时候它有能力保存它所处的条件或它正在服务的特别的程序(否则在执行代码时已经被发展的任何变量都会被下一个重复或遍历覆盖)。 典型地,这藉由在调用它本身之前或在刚刚被再进入的序列的开始在寄存器或数据区域堆栈中保存值来做到。 2) 递归表达式是一个函数、算法或指令序列(典型地,一个IF, THEN, ELSE 序列),它循环的回到它本身的开始,直到发现一些条件已经被满足 。在这里有一个简单的例子(使用一种制成的计算机源语言): CODELINE1 N=0; CODELINE2 IF N=<10 THEN DO WRITE LETTER; CODELINE3 ELSE GOTO CODELINE6;CODELINE4 N=N+1;CODELINE5 GOTO CODELINE2;CODELINE6 ...some other instruction在这里,标着 CODELINE 到 CODELINE5 的指令是回归的直到 N 的值为10的情况出现. "IF N=<10 " 意思是 " 如果 N 的值少于 10 " 。 " N=N+1" 意思是 " 把 N 的现在的值加上1 " 。 在数学中,递归比它用于程序中时有相似的但是更复杂的意义。