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

  • 需要金币1000 个金币
  • 资料目录论文助手 > 大学本科 > 师范学院 >
  • 转换比率:金钱 X 10=金币数量, 例100元=1000金币
  • 论文格式:Word格式(*.doc)
  • 更新时间:2019-09-04
  • 论文字数:5680
  • 课题出处:(路老师)提供原创资料
  • 资料包括:完整论文

支付并下载

摘要:递归方法在数学和计算机中都有很广泛的应用,但是递归算法存在语言限制,运行效率低等问题,有时需要将其转化成非递归算法.如何转换成非递归算法常常是人们困惑的问题.因此本文主要通过对递归方法分类,给出不同类型的递归算法转化成非递归算法的编程规则、方法,以及采用递归算法和非递归算法的时机.通过算法分析给出具体的求解方法,并在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结论

参考文献


支付并下载

提示:本站支持手机(IOS,Android)下载论文,如果手机下载不知道存哪或打不开,可以用电脑下载,不会重复扣费