1 / 6
文档名称:

算法时间复杂度.doc

格式:doc   大小:23KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

算法时间复杂度.doc

上传人:梅花书斋 2019/12/4 文件大小:23 KB

下载得到文件列表

算法时间复杂度.doc

文档介绍

文档介绍:实验一算法的时间复杂度一、 实验目的与要求熟悉C/C++语言的集成开发环境;通过本实验加深对算法分析基础知识的理解。二、 实验内容:掌握算法分析的基本方法,并结合具体的问题深入认识算法的时间复杂度分析。三、 实验题定义一个足够大的整型数组,并分别用起泡排序、简单选择排序、快速排序和归并排序对数组中的数据进行排序(按从小到大的顺序排序),记录每种算法的实际耗时,并结合数据结构中的知识对算法的时间复杂度分析进行说明。实验数据分两种情况:1、数组中的数据随机生成;2、数组中的数据已经是非递减有序。四、 实验步骤理解算法思想和问题要求;编程实现题目要求;上机输入和调试自己所编的程序;验证分析实验结果;整理出实验报告。五、 实验程序#include<iostream>#include<>#include<>usingnamespacestd;voidSelectSort(intr[],intn){ inti; intj; intindex; inttemp;for(i=0;i<n-1;i++) {index=i; for(j=i+1;j<n;j++) if(r[j]<r[index]) index=j;if(index!=i) { temp=r[i]; r[i]=r[index]; r[index]=temp; } }for(i=0;i<n;i++)cout<<r[i]<<"";cout<<"\n";}voidBubbleSort(intr[],intn){ inttemp; intexchange; intbound;exchange=n-1; while(exchange) { bound=exchange; exchange=0; for(intj=0;j<bound;j++) if(r[j]>r[j+1]) { temp=r[j]; r[j]=r[j+1]; r[j+1]=temp; exchange=j; } } for(inti=0;i<n;i++)cout<<r[i]<<""; cout<<"\n";}intPartition(intr[],intfirst,intend){ inti=first; intj=end; inttemp;while(i<j) {while(i<j&&r[i]<=r[j]) j--;if(i<j) { temp=r[i]; r[i]=r[j]; r[j]=temp;i++; }while(i<j&&r[i]<=r[j]) i++;if(i<j) {temp=r[j]; r[j]=r[i]; r[i]=temp;j--; } } returni;}//快速排序voidQuickSort(intr[],intfirst,intend){ if(first<end) {intpivot=Partition(r,first,end);QuickSort(r,first,pivot-1);QuickSort(r,pivot+1,end); }}voidMerge(intr[],intr1[],ints,intm,intt){ inti=s; intj=m+1; intk=s;while(i<=m&&j<=t) {if(r[i]<=r[j]) r1[k++]=r[i++];else r1[k++]=r[j++]; }if(i<=