算法分析与设计实验报告

算法分析与设计实验报告

ID:6728790

大小:288.77 KB

页数:44页

时间:2018-01-23

算法分析与设计实验报告_第1页
算法分析与设计实验报告_第2页
算法分析与设计实验报告_第3页
算法分析与设计实验报告_第4页
算法分析与设计实验报告_第5页
资源描述:

《算法分析与设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、算法分析与设计实验报告学院: 信息科学与工程学院专业班级: 物联网工程1201班 指导老师:   李敏44学号:  姓名:   姚洪齐目录实验一递归与分治.............................3二分查找..........................3快速排序..........................9实验二回溯算法................................1301背包问题......................1344实验三动态规划.....

2、..........................24最长子序列问题......................24矩阵连乘问题........................2744实验一递归与分治l实验目的理解递归算法的思想和递归程序的执行过程,并能熟练编写递归程序。掌握分治算法的思想,对给定的问题能设计出分治算法予以解决。l实验预习内容编程实现讲过的例题:二分搜索、合并排序、快速排序。对本实验中的问题,设计出算法并编程实现。l试验内容和步骤1.二分查找Ø实验内容在对线性表的操作中,经常需要查找某

3、一个元素在线性表中的位置。此问题的输入是待查元素x和线性表L,输出为x在L中的位置或者x不在L中的信息。Ø实验要求二分搜索方法充分利用了元素间的次序关系,采用分治策略,可在最坏情况下用O(logn)时间完成搜索任务。Ø算法分析二分查找的基本思路是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法终止;如果xa[n/2],则只要在数组a的右半部分继续搜索x。由于二分查找的数组不一定是一个整数数组,所以我

4、采用了C++中的模板函数,将排序函数Sort和二分查找函数BinarySort写为了模板函数,这样不尽可以查找整数数组,也可以查找小数数组。由于查找的数组的长度不固定,所以我用了C语言中的malloc和realloc函数,时,在用realloc函数为数组再次分配空间。由于在随机输入一组数时不知在什么位置停止,所以在输入完一组数之后,按Ctrl+Z键结束输入,然后再用cin.clear()将输入恢复,再继续输入。44Ø该算法的流程图如下:44Ø调试结果44Ø实验源程序代码#include

5、>#include#includeusingnamespacestd;#defineN10//初始空间大小#definen10//增加空间大小templatevoidsort(Typea[],intnum){doubletemp;for(inti=1;i<=num-1;i++){for(intj=0;ja[j+1]){44temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}temp

6、lateintBinarySearch(Type*a,Typex,intm){intleft=0;intright=m-1;while(left<=right){intmiddle=(left+right)/2;if(x==a[middle])returnmiddle;if(x>a[middle])left=middle+1;elseright=middle-1;}return-1;44}intmain(){int*a,num,length,i=0;a=(int*)malloc(s

7、izeof(int)*N);cout<<"请输入一组数(Ctrl+z停止输入)"<>a[i]){i++;if(i>=N){a=(int*)realloc(a,sizeof(int)*(length+n));length+=n;}}sort(a,i);for(intj=0;j>num;44if(BinarySearch(a,num,i)!

8、=-1){cout<>b[i1]){i1++;if(i1>=N){b=(double*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。