数据结构- 递归算法实验报告.doc_第1页
数据结构- 递归算法实验报告.doc_第2页
数据结构- 递归算法实验报告.doc_第3页
数据结构- 递归算法实验报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程数据结构实验名称实验五 递归算法学号姓名实验日期:2012/11/23实验五 递归算法实验目的: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;itesti) 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;itesti) low=i+1;else high=i-1;if(i=high) return -1;int main() int a10=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 10273206n);运行结果为:查找失败的例子为:#include int Csearch(int test,int x,int low,int high) int i;for( i=0;itesti) low=i+1;else high=i-1;if(i=high) return -1;int main() int a10=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) ;printf(This program is made by 10273206n);运行结果为:(3)程序为:#include#includeint Bsearch(int a,int x,int low,int high)int mid;if(lowhigh) return -1;mid=(low+high)/2;if(x=amid) return mid;else if(xamid) Bsearch(a,x,low,mid-1);else Bsearch(a,x,mid+1,high);int Csearch(int test,int x,int low,int high) int i;for( i=0;itesti) low=i+1;else high=i-1;if(i=high) return -1;int main()time_t start,end;double dif;int Bsearch(int a,int x,int low,int high);int Csearch(int test,int x,int low,int high);int a10000,x,y,i,bn,flag;int low=0,high=10000,mid=0;printf(please enter number:n);scanf(%ld,&x);for( i=0;ihigh;i+)ai=i+1; time(&start);bn=Bsearch(a,x,0,10000);if(bn=-1) printf(%d is not in a !n,x);else printf(%d is in a,suffix is %dn,x,bn);time(&end);dif=difftime(end,start);printf(di gui method use time is:%f secondsn,dif); time(&start);flag=Csearch(a,x,0,10000);if(flag=-1) printf(%ld is not in a !n,x);else printf(%d is in a,suffix is %dn,x,flag);time(&end); dif=difftime(end,start);printf(xun huan method use time is :%f secondsn,dif);printf(This program i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论