第 6 页
while(i<=n-2*h+1) {
Merge(r,r1,i,i+h-1,i+2*h-1); i+=2*h; }
if(i Merge(r,r1,i,i+h-1,n); else for(int k=i;k<=n;k++) r1[k]=r[k]; } void MergeSort(int r[],int n) { int *r1=new int[n+1]; int h=1; while(h<=n) { MergePass(r,r1,n,h); h=2*h; MergePass(r1,r,n,h); h=2*h; } } //文件数据的产生和读写的头文件:file.h //随机产生待排数据的函数实现 void generate(int *array_to_sort, const int length); //数据写入文件的函数实现 bool write(int *array, int length, const char *file_name); //从文件读入数据的函数实现 bool read(int *array, int length, const char *file_name); //文件数据的产生和读写函数的实现的源文件:file.cpp #include \#include //随机产生待排数据的函数实现 void generate(int *array_to_sort, const int length) { for (int i = 1; i <=length; i++) { array_to_sort[i] = rand(); } } 第 6 页 共 6 页 第 7 页 //数据写入文件的函数实现 bool write(int *array, int length, const char *file_name) { ofstream out(file_name); if (!out) { cerr << \ << file_name << \<< endl; return false; } for (int i = 1; i <= length; i++) { out << array[i] <<\; if(i==0) out< out.close(); return true; } //从文件读入数据的函数实现 bool read(int *array, int length, const char *file_name) { ifstream in(file_name, ios::in); if (!in) { cerr << \ << file_name << \ << endl; return false; } for (int i = 1; i <= length; i++) in >> array[i]; in.close(); return true; } 菜单选择项函数的头文件:menu.h #include void Sort(int *r,int n,int m); void Printm(int *r,int n); 菜单选择项函数的实现的源文件:menu.cpp #include 第 7 页 共 7 页 第 8 页 #include \ int Menu() { int n; cout<<\选择希尔排序算法\< void Sort(int *r,int n,int m) { switch(m) { case 1:ShellSort(r,n);break; case 2:QuickSort(r,1,n);break; case 3:HeapSort(r,n);break; case 4:MergeSort(r,n);break; default:cout<<\输入的选择项错误\;break; } } void Printm(int *r,int n) { for(int i=1;i<=n;i++) {cout< //主函数的实现的源文件:main.cpp #include 第 8 页 共 8 页 第 9 页 int N=10000; cout<<\随机产生个数据存入磁盘文件中\< write(r, N, \); cout<<\数据已存到磁盘文件中\< cout<<\请输入你想读出的数据个数\< int *p=new int[100001]; read(p, n, \); cout<<\读出的数据为\< cout<<\排序后的结果为:\< cout<<\并将排好的数据存入原文件中:\< 六.程序测试及运行结果: 第 9 页 共 9 页 第 10 页 七.我的收获 通过这次实验,我知道了实际上解决一个问题的办法有很多种,应该发散自己的思维,尝试着寻求更多的解决的办法,在已有的基础上找到使解决问题的办法更有效,具有更高效率,不应该只满足于单纯的解决问题,还要考虑该办法的有效性。特别的一点是程序设计是很有趣的。 第 10 页 共 10 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库排序算法课程设计题1(2)在线全文阅读。
相关推荐: