欢迎来到天天文库
浏览记录
ID:30011215
大小:69.00 KB
页数:7页
时间:2018-12-26
《算法分析实验一实验报告冒泡,归并排序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WORD格式整理算法设计与分析实验报告年级:____________________专业:____________________学号:____________________姓名:____________________专业资料值得拥有WORD格式整理第1章算法分析基本概念实验1.1算法计算时间复杂度和增长率(4学时)1.实验目的通过算法的程序实现和执行时间测试、并与理论上的结论进行对比分析,深入理解算法时间复杂度分析中对于输入数据考虑其等价类的意义,理解算法时间复杂度渐进性态和和增长率的概念,为后续学习和实验奠定基础,同时也学习程序效率测试
2、的基本思路。2.实验准备n算法时间复杂度分析的相关概念(1)算法的计算时间取决于算法中某些操作的执行次数,这些操作是算法时间复杂度分析的依据。(2)增长率反映了算法的计算时间复杂度,即随着算法输入规模的增加、算法计算时间增加的趋势。(3)算法的计算时间复杂度针对输入数据的等价类来分析或测试。n随机数生成算法通过程序生成(伪)随机数,作为实验用测试数据。可使用编程语言自带的random函数生成,也可以采用一些有效的随机数生成算法生成,例如“线性同余法”,基于该算法,只要参数选择合适,所产生的伪随机数就能满足均匀性和独立性,与真正的随机数具有相近的
3、性质。该算法的基本思想如下:通过设置Xi+1=(aXi+c)modm,n³0,其中的4个整数参数:m——模数,m>0;a——乘数,0£a#include#include#include//用于做种
4、子intarray[1000];//全局变量,起始数组voidmerge(intv[],intleft,intmid,intright)//合并[left,mid]和[mid+1,right]{inti,j,k=0;i=left;//i为第一路的下标j=mid+1;//j为第二路的下标int*temp=newint[right-left+1];while(i<=mid&&j<=right)temp[k++]=(v[i]<=v[j])?v[i++]:v[j++];//依次合并2路到temp数组while(i<=mid)temp[k++]=v[i+
5、+];while(j<=right)temp[k++]=v[j++];for(i=left,j=0;i<=right;++i,++j)//合并完数据写回v数组v[i]=temp[j];delete[]temp;}voidMerge_sort(intv[],intnum){inti,size,j,mid,right,count=0;for(i=1;i=num)//下标不能溢出mid=
6、num-1;专业资料值得拥有WORD格式整理if(right>=num)right=num-1;merge(v,j,mid,right);j=right+1;count++;}}printf("MergeSortStart!!!");for(intz=0;z7、n;printf("pleaseinputthearraynumber:");scanf("%d",&n);//输入数组元素个数for(inti=0;i8、j]>array[j+1]){swp=array[j+1];//用swp作为中间变量实现数组元素的交换array[j+1]=array[j];arra
7、n;printf("pleaseinputthearraynumber:");scanf("%d",&n);//输入数组元素个数for(inti=0;i8、j]>array[j+1]){swp=array[j+1];//用swp作为中间变量实现数组元素的交换array[j+1]=array[j];arra
8、j]>array[j+1]){swp=array[j+1];//用swp作为中间变量实现数组元素的交换array[j+1]=array[j];arra
此文档下载收益归作者所有