实验一 算法的时间复杂度 一、 实验目的与要求 熟悉 C/C++语言的集成开发环境; 通过本实验加深对算法分析基础知识的理解。 软件环境: 操作系统:w indow s7 旗舰版 集成开发环境 :visual studio 2010 旗舰版 硬件环境: 处理器:因特尔 Core i3 M 380 内存: 2GB 二、 实验内容: 掌握算法分析的基本方法,并结合具体的问题深入认识算法的时间复杂度分析。 三、 实验题 定义一个足够大的整型数组,并分别用起泡排序、简单选择排序、快速排序和归并排序对数组中的数据进行排序(按从小到大的顺序排序),记录每种算法的实际耗时,并结合数据结构中的知识对算法的时间复杂度分析进行说明。实验数据分两种情况: 1、数组中的数据随机生成; 2、数组中的数据已经是非递减有序。 四、 实验步骤 理解算法思想和问题要求; 编程实现题目要求; 上机输入和调试自己所编的程序; 验证分析实验结果; 整理出实验报告。 五、 实验程序 #include
#include #include #include //导入时间库函数文件 using namespace std; void BubbleSort(int arr[],int n); void QuickSort(int arr[],int left,int right); void SelectSort(int arr[],int n); void UnionSort(int arr[],int left,int right); int Partition(int arr[],int left,int right); void Union(int arr[],int left,int mid,int right); const int ARRAY_MAXSIZE=10000; //定义数组最大长度 int main(int argc,char *argv[]){ //测试调用的排序算法耗时 int array_Sort[ARRAY_MAXSIZE]; //声明待排序的数组 int array_Sort2[ARRAY_MAXSIZE]; for(int i=0;i<=ARRAY_MAXSIZE;i++){ //生成随机数组,大小为10000 array_Sort[i]=rand()%500; } for(int j=0;j