算法的时间复杂度实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一算法的时间复杂度

一、实验目的与要求

熟悉C/C++语言的集成开发环境;

通过本实验加深对算法分析基础知识的理解。

软件环境:操作系统:windows7 旗舰版

集成开发环境:visual studio 2010 旗舰版

硬件环境:处理器:因特尔 Core i3 M 380

内存: 2GB

二、实验内容:

掌握算法分析的基本方法,并结合具体的问题深入认识算法的时间复杂度分析。

三、实验题

定义一个足够大的整型数组,并分别用起泡排序、简单选择排序、快速排序和归并排序对数组中的数据进行排序(按从小到大的顺序排序),记录每种算法的实际耗时,并结合数据结构中的知识对算法的时间复杂度分析进行说明。实验数据分两种情况:

1、数组中的数据随机生成;

2、数组中的数据已经是非递减有序。

四、实验步骤

理解算法思想和问题要求;

编程实现题目要求;

上机输入和调试自己所编的程序;

验证分析实验结果;

整理出实验报告。

五、实验程序

#include<>

#include<>

#include

#include<> 组大小ARRAY_MAXSIZE为10000如下:

2.数组大小ARRAY_MAXSIZE为8000如下

3.数组大小ARRAY_MAXSIZE为5000如下:

六、实验分析

1、各算法时间时间消耗图

2、各算法时间性能分析表:

3、分析与说明:

由算法时间复杂度表分析,起泡排序在最好情况下时间性能好,最坏情况和平均情况和选择排序一样,选择排序的时间性能都不高,均为O(n2),根据平均情况来看,快速排序和归并排序的时间性能一样,且最坏情况时归并排序优于快速排序。

对于随机数组序列,数组大小为10000,8000,5000时候,归并排序算法执行时间和快速排序时间都相对较短,简单选择排序缓慢,而起泡排序则是最耗时的。但是当数组由10000变到5000时,归并排序的时间性能变化不大,而快速排序时间性能提高很多,起泡排序时间性能下降慢,所以起泡排序在随机序列中的性能不高。

对于非递减数组序列,起泡排序时间消耗为均为0(0不代表没耗时,只是CPU处理速度太快,没法显示更精确的时间),而其他的快速排序,选择排序,归并排序和随机数组序列情况接近。所以起泡排序在非递减序列中的时间性能高。

相关文档
最新文档