递归程序转换成非递归程序的方法分析.doc

资料分类:师范学院 上传会员:路老师 更新时间:2019-09-04
需要金币1000 个金币 资料包括:完整论文 下载论文
转换比率:金额 X 10=金币数量, 例100元=1000金币 论文字数:5680
折扣与优惠:团购最低可5折优惠 - 了解详情 论文格式:Word格式(*.doc)

摘要:递归方法在数学和计算机中都有很广泛的应用,但是递归算法存在语言限制,运行效率低等问题,有时需要将其转化成非递归算法.如何转换成非递归算法常常是人们困惑的问题.因此本文主要通过对递归方法分类,给出不同类型的递归算法转化成非递归算法的编程规则、方法,以及采用递归算法和非递归算法的时机.通过算法分析给出具体的求解方法,并在windows7.0上运行程序获得具体实验数据进行比较.

 

关键词 递归程序;非递归程序;栈;算法

 

递归(recursion)是一种重要的数学方法,它通常是把一个复杂的大问题变成一个类似于原始问题的小规模问题[1].它是指一个进程在其界定的程序中有直接或间接调用本身的一种方式.在计算机中,程序调用本身编程技术称为递归算法.递归程序是目前应用最广泛的编程语言之一,在很少的算法下便可解决程序中的多次重复,大大地削减了程序中的代码.但是递归算法在运行时效率往往较低,需要将其转化为相应的非递归算法.递归算法的非递归化往往很困难,因此本文给出递归算法非递归化的方法.另外由于两种算法皆有优越性,所以通过算法分析比较,给出相应问题的策略.

 

目录

摘要

Abstract

1引言

2递归的相关定义

3 递归设计方法

3.1 递归模型

3.2递归算法设计

3.3 递归算法分类

3.4 递归算法的优缺点

4 递归转化成非递归的实现方法

4.1直接转化法

4.2利用栈间接转换法 

4.2.1利用栈间接转化的具体实现

4.2.2算法实现

5实验结果分析

6结论

参考文献

相关论文资料:
最新评论
上传会员 路老师 对本文的描述:在程序设计中亦有此道理,程序的执行效率和可读性往往都是是互相冲突的.例如,我们所用的递归程序,它的结构清晰简练、 可读性较好, 但执行效率却往往不那么令人满意,而非递归程序多......
发表评论 (我们特别支持正能量传递,您的参与就是我们最好的动力)
注册会员后发表精彩评论奖励积分,积分可以换金币,用于下载需要金币的原创资料。
您的昵称: 验证码: