递归算法实验报告
递归算法实验报告
篇一:递归算法的设计和实现的实验报告 班级学号 姓名 实验组别 试验日期 室温 报告日期成绩 报告内容:(目的和要求、原理、步骤、数据、计算、小结等) 实验名称:递归算法的设计和应用 实验目的: 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 byn"); } 运行结果为: ②查找失败的例子为: #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=11,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") ; pr