递归算法的学习

1. 递归是计算机科学和数学中的一个极其重要的问题求解工具.在程序设计语言中可以用它来定义语言的语法,在数据结构中可以用它来编制表和树结构的查找和排序算法.数学家们则将递归用于组合数学领域,其处理对象是大量的计算和可能性问题.递归都是算法研究.运算研究模型/博弈论和图论的重要课题.

递归概念:

   大多数人不会自然地想到递归.例如,如果要求定义幂函数X的N字方,其中X为实数,而N为非负整数,一种典型的做法骒用X的重复乘积:

如果一种算法的定义组成如下,则它就是递归的.

1.对应于某些参数可以求值的一个或多个终止条件.

2.一个递归步骤,它根据先前某次值求当值.递归步骤最终必须导致终止条件.

递归定义是对递归函数的自然应用.例如,有些编译器使用语言语法的BNF定义以及递归下降的语法分析算法,将程序翻译成机器代码.不同的产生规则,被编写成不同的函数,这些函数调用自身或其他产生规则结束.这一过程可能包含间接递归,例如规则P调用规则Q,而规则Q以调用规则P结束.

递归是对树进行定义和扫描的强有力的工具,

递归函数的结构可以用计算非负整数的阶乘问题进行说明.非负数的阶乘被定义为所有小于或等于N的正整数的积.若用N!表示该值,则N!=N*(N-1)*(N-2)*.....*2*1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值