递归算法实验报告
篇一:递归算法的设计和实现的实验报告
班级学号 姓名 实验组别 试验日期 室温 报告日期成绩 报告内容:(目的和要求、原理、步骤、数据、计算、小结等)
实验名称:递归算法的设计和应用
实验目的:
1. 掌握递归算法的实现。
2. 实现递归算法的应用。
实验环境(硬/软件要求):
Windows XX, Visual C++ 6.0
实验内容:
用递归算法实现前n个自然数的累加和与平均数
【C语言源程序】
#include
int Digui(int n)//设计递归算法功能为求前n个整数的和//
{
if(n==0)
return 0;
if(n==1)
return 1;
else return Digui(n-1)+n;
}
int main()
{
int n;
printf("请输入n的值:\n");
scanf("%d",&n);
printf("计算结果为:\n%d\n",Digui(n));
printf("这n个数的平均数是:\n%f\n",(float)Digui(n)/n);
}
篇二:数据结构- 递归算法实验报告
实验报告
实验五 递归算法
实验目的:
1.熟悉递归算法的实现过程及实现机理;
2.熟练并掌握递归算法的设计方法;
3.了解递归算法到非递归算法的转换。
实验原理:
高级程序语言函数调用原理;
递归算法的设计方法。
实验内容:
6-14 折半查问题。折半查问题的描述见6.1节,折半查问题的递归算法见例6-2。要求:
(1)设计折半查问题的循环结构算法;
(2)设计一个查成功的例子和一个查不成功的例子,并设计测试主程序;
(3)设计一个包含10000个数据元素的查成功的例子,然后分别调用循环结构的查算法和递归结构的查算法,并测试出两种算法在计算机上的实际运行时间。
实验结果:
(1)折半查问题的循环结构算法程序为:
int Csearch(int test[],int x,int low,int high)
{
int i;
for( i=0;i {
if(x==test[i]) return i;
else if(x>test[i])low=i+1;
else high=i-1;
}
if(i>=high) return -1;
}
(2)①查成功的例子:
#include
int Csearch(int test[],int x,int low,int high)
{
int i;
for( i=0;i {
if(x==test[i]) return i;
else if(x>test[i])low=i+1;
else high=i-1;
}
if(i>=high) return -1;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int x=6,flag ;
int low=0,high=10;
flag=Csearch(a,x,0,10);
if(flag==-1) printf("searching is failed!\n");
else printf("searching is success!\n") ;
printf("This program is made by 10273206\n");
}
运行结果为:
②查失败的例子为:
#include
int Csearch(int test[],int x,int low,int high)
{
int i;
二叉树中序遍历非递归算法 for( i=0;i {
if(x==test[i]) return i;
else if(x>test[i])low=i+1;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论