论文范文网-权威专业免费论文范文资源下载门户!
当前位置:毕业论文格式范文>毕业论文>范文阅读
快捷分类: 计算机算法分析论文 算法多样化开题报告 聚类算法文献外文翻译 论文算法重复不出来 遗传算法英文参考文献 des算法参考文献

关于算法分析论文范文 递归算法分析一例相关论文写作参考文献

分类:毕业论文 原创主题:算法分析论文 更新时间:2024-01-20

递归算法分析一例是关于对不知道怎么写算法分析论文范文课题研究的大学硕士、相关本科毕业论文数据分析算法论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。

摘 要: 跟踪程序的能力是提高编程能力和编程技巧的重要一环,但是如果程序中有递归算法,跟踪起来就比较困难.通过一个迷宫的例子讨论一个递归算法的程序跟踪过程,同时也描述了递归算法的实质及使用技巧.

关键词: 递归;矩阵;迷宫;Pascal语言

中图分类号: TP301.6 文献标识码: A 文章编号: 2095-8153(2015)03-0100-03

作者简介: 姜秋明(1970-),男,湖北工业职业技术学院公共课部副教授;王妍婷(1988-),女,湖北工业职业技术学院公共课部教师.

所谓递归就是过程(或函数)的自调用,这种调用既可以是直接的,也可以是间接的[1].

递归对于某些问题,是一个十分有用的方法.它可以使某些看来不易解决的问题变得轻而易举.但递归的运用有一定的技巧.我们在程序设计中不可简单套用,否则会造成混乱或错误,且不易查出错误根源.笔者在这方面有过体会,下面以一个实际问题谈谈递归算法.

问题表述:找出从入口经过迷宫到出口的最短路径.迷宫如图示,画斜线的位置不能通行,只能从一个空白位置走到一个和之相邻的空白位置,但不能走重复路线.

解决这一问题可用递归算法,用递归算法写出的程序比较简短明了.算法描述如下:

1.用一个矩阵,即二维数组maze[i,j]表示迷宫,当其值为“1”表示不通行,迷宫之外显然也不可通行,可预先设为“1”.当值为“0”,表示可通行.

2.用两一维数组记录可以通行路径的方格坐标(即对应二维数组下标).

3.建立一个包函递归算法的尝试程序try(x,y,i:interger).

(1)占据入口,把入口二维数组的两下标传给两一维数组.

(2)向右、左、上、下尝试,如果数组maze[i,j]等于0,则占据它作为一个新入口.

(3)重复(1)、(2)直至到达出口.实际上这里就是递归调用.每调用一次就传给两一维数组一对坐标值,这样当到达出口时,我们就得到所过路径的“坐标序列”.当然,这未必是最短路径.

4.用一个值stepnum记录路径长.当新生产的路径比先产生的路径短时就要更换它,否则弃之.这样,当所有可能的路径搜索完后,“坐标序列”记录的就是最短路径.

下面给出用passcal语言写的尝试程序try(x,y,i:integer),并分析递归调用过程[2].

Procedure try(x,y,i;integer);

//x、y初值为入口坐标值,i 为调用层次标识

Var j,row,col:integer;//定义四个整型变量

begin

for j:等于l to 4 do //向四个方向试探

begin

row:等于x+u[j]; //移动行号

col:等于y+v[j]; //移动列号

if maze[row,col]等于0 then //判断移动后的值是否为0

begin

maze [row,col]:等于1;//临时占据可通行点

a[i]:等于row; // 把行坐标记录在一维数据中

b[i]:等于col;// 把列坐标记录在一维数据中

if(row-1)*n+col等于Outer then //判断是否到达出口

if i

begin

get_path; //满足条件输出路径

stepnum:等于i; //记录当前路径长度,供下次比较

end;

else

try(row,col,i+1); //递归调用——用当前位置作为入口

maze[row,col]:等于0 //释放占据点

end;

end;

end

在程序中,我们了解到在到达出口之前,程序一直在执行递归算法.递归调用被频繁使用比我们想象的要多,因为在迷宫里有很多死胡同,它要进去退出来,再重新试探:还有当找到一条路径后再回溯找其它的路径.

为了便于分析问题,我们把迷宫简化为2×3的矩阵,如图示.

程序跟踪如下:

maze[1,1]等于1;//在主程序中占据入口

a[1]:等于1;

b[1]:等于1;

try(1,1,2);

row:等于1;

co1:等于1+1等于2;//右移试探

maze [1,2]:等于0;//试探成功then

maze [1,2]: 等于1;//占据

a[2]:等于1

b[2]:等于2;//记录坐标

(1-1)ⅹ3+2≠6;//判断没有到出口就进行递归调用

try(1,2,3);//第二次调用开始

row:等于1;

co1:等于2+1等于3;//相对于占据点右移试探

maze [1,3]等于1;//迷宫外不通行换一个方向试探

row:等于1;

co1:等于2-1等于1;//相对于占据点右移试探

maze [1,1]等于1;//已被占据还没有释放换一个方向试探

row:等于1-1等于0

co1:等于2;//上移试探

maze [0,2]等于1;//在迷宫外,不通就换一个方向试探

row:等于1+1等于2

co1:等于2;//下移试探

总结:该文是关于算法分析论文范文,为你的论文写作提供相关论文资料参考。

参考文献:

1、 例特征根方程求解线性递推数列 [摘 要] 特征根方程是求解线性数列通项中必备的知识,将数列问题通过特征方程转换为可求解的通式模型 本文简要介绍特征方程原理的来源,并例谈解决。

2、 合并报表层面内部交易所涉递延所得税处理 【摘 要】 企业集团在编制合并财务报表时,未实现内部交易损益的抵销不仅会影响集团会计主体的资产价值计量,同时也会因为账面价值和计税基础的不同而影。

3、 要刊速递 《华尔街日报》 IEA看涨油价国际能源署(IEA)指出,美国、巴西、加拿大和挪威的石油产量可以确保未来两年的石油供给能够满足需求,但如果投资不。

4、 要刊速递 《华尔街日报》大摩相关性指数创新高追踪各地区和各资产类别的摩根士丹利全球相关性指数飙升,已经创下2016年12月以来的新高。英国经纪商“橄。

5、 星巴克种族歧视事件不是孤例 “他们只是在星巴克店内等人,然后就被警察抓走了。”这是一些KOL对这次星巴克歧视事件的概括。短短一句话,却深刻地描绘了被歧视者的痛苦和无力。。