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