递归算法

递归算法解决问题的特色:
  (1) 递归就是在过程或函数里调用自身。

  (2) 在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。算法

   (3) 在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。ide

递归算法所体现的“重复”通常有三个要求:函数

  一是每次调用在规模上都有所缩小(一般是减半);spa

  二是相邻两次重复之间有紧密的联系,前一次要为后一次作准备(一般前一次的输出就做为后一次的输入);递归

  三是在问题的规模极小时必须用直接给出解答而再也不进行递归调用,于是每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归调用将会成为死循环而不能正常结束。开发


买的一本"高阶perl"书,开始就讲递归。。 本人看第一眼感受就是在讲逻辑思惟。。。 代码简单,但实在看不懂为啥要那么写。。。本身有没专门系统的学过开发。。。看的很费劲。。。 只能在网上查递归资料。。。 结果递归也算一种算法。。。心想本身又没学过什么算法啊,本身能硬头皮看了。
it


下面一段是数字n, 10进制转换2进制:
sub binary {
  my ($n) = @_;
  return $n if $n == 0 || $n == 1;#####这个就是上面说的递归出口
  my $k = int($n/2);
  my $b = $n % 2;
  my $E = binary($k);###函数自身调用,,每次函数的输出,也是它的输入
  return $E . $b;
}
相关文章
相关标签/搜索