logo资料库

各种排序(实验报告).doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
数据结构课程设计——排序算法比较 课程设计报告 数据结构课程设计题目:各种排序 学生姓名: 专 班 学 业: 级: 号: 指导教师: 2012 年 6 月 27 日 第 1 页 共 15 页
数据结构课程设计——排序算法比较 目 录 排序算法比较 一、程序要求分析 二、程序主要功能 三、程序运行平台 四、程序数据结构 五、算法及时间复杂度 六、程序源代码 七、自我总结 第 2 页 共 15 页
数据结构课程设计——排序算法比较 各 种 排 序 一、需求分析 任务:用程序实现插入法排序、起泡法、选择法、快速法、合并法排 序; 输入的数据形式为任何一个正整数,大小不限。 输出的形式:数字大小逐个递增的数列。 要求给出多组不同元素个数的输入数据,并用列表打印出每种排序下 的各趟排序结果。每个排序法结束时应打印出其元素比较的次数和交换的 次数。此程序需将结果用列表打印,一定要将其打印结果排列好。 二、程序的主要功能 1.用户输入任意个数,产生相应数量的随机数 2.用户可以自己选择排序方式(直接插入排序,冒泡排序、快速排 序、选择排序、二路归并排序五种排序方法)的一种 3.程序给出原始数据、排序后从小到大的数据,并给出排序所用的时 间,比较的总次数和交换的总次数。 三、程序运行平台 Visual C++ 6.0 版本 四、数据结构 1.类: NuovSort{ public: void Myface(); void choose(); void insertsort(int R[],int n); void Bubblesort(int R[],int n); void quicksort(int R[],int left,int right); void selectsort(int R[],int n); //直接插入排序法 //冒泡排序算法实现 //快速排序算法实现 //直接选择排序算法实现 第 3 页 共 15 页
数据结构课程设计——排序算法比较 void merge(int R[],int A[],int s,int m,int t);//二路归并排序算法实现 void mergepass(int R[],int A[],int n,int c); void mergesort(int R[],int n); }; 2.主界面: Myface() { //界面 -->各种排序算法实现<--"<>n; } while((n<1)||(n>500)); int left=0,right=n-1; for(i=0;i
数据结构课程设计——排序算法比较 cout<>m; switch(m) { case 1:t1=time(NULL);insertsort(R,n);t2=time(NULL);tt1=difftime(t2,t1); cout<<"排序所需时间为:"<
数据结构课程设计——排序算法比较 cout<<"元素交换次数为"<
数据结构课程设计——排序算法比较 快速排序 选择排序 O(n2) O(n2) O(n*log2n) 不稳定 O(n2) 稳定 六、程序源代码 /********************************************************************************************** 设计要求:利用随机函数产生 N 个随机整数(N = 1 到 500),利用直接插入排序,冒泡排序、快 速排序、选择排序、二路归并排序五种排序方法(可添加其它排序方法)进行排序(结果为由小 到大的顺序),并统计每一种排序所耗费的时间,比较的总次数和交换的总次数。 #include #include #include #include #include using namespace std; const int maxsize=500; int R[maxsize]; int A[maxsize]; int i,n,right,left; int comN1=0,chaN1=0; int comN2=0,chaN2=0; int comN3=0,chaN3=0; int comN4=0,chaN4=0; int comN5=0,chaN5=0; class NuovSort{ public: //直接插入排序中元素比较的次数和交换的次数 //冒泡排序中元素比较的次数和交换的次数 //快速排序中元素比较的次数和交换的次数 //直接选择排序中元素比较的次数和交换的次数 //合并排序中元素比较的次数和交换的次数 void Myface(); void choose(); void insertsort(int R[],int n); void Bubblesort(int R[],int n); void quicksort(int R[],int left,int right); void selectsort(int R[],int n); void merge(int R[],int A[],int s,int m,int t);//二路归并排序算法实现 void mergepass(int R[],int A[],int n,int c); void mergesort(int R[],int n); //直接插入排序法 //冒泡排序算法实现 }; //快速排序算法实现 //直接选择排序算法实现 第 7 页 共 15 页
void NuovSort::Myface() { 数据结构课程设计——排序算法比较 //界面 cout<<"\t -->各种排序算法实现<--"<>n; } while((n<1)||(n>500)); int left=0,right=n-1; for(i=0;i>m; switch(m) { case 1:t1=time(NULL);insertsort(R,n);t2=time(NULL);tt1=difftime(t2,t1); 第 8 页 共 15 页
分享到:
收藏