版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c语言各种排序方法及其所耗时间比较程序the final edition was revised on december 14th, 2020.# i n c 1 u dsinclude #include #include #include const int n=1000;数据量,用于检测算法质量const int m=1000;/执行次数冒泡排序(递增)void bubblesort(int r,int n) (int flag=l;/flag 为 0 停止排序for(int i=l;i=i;j) if (rjrj-l) (int t=rj;rj=rj-l;rj-l=t;flag=1;)i
2、f(flag=0)return;)快速排序void quicksort(int r,int left,int right)(int i, j;int swap;i=left;j=right;swap=rleft;while(ij) (while(ij)&(swaprjl)j-; if(ij)(ri=rj;i+;while(iri)i+; if(ileft)quicksort(r, left, i-l);if(iright)quicksort(r, i+1, right);return;)堆排序先建立堆void creatheap(int r,int i,int n)(int j;int t;t
3、=ri;j=2*i;while(jn)(if(jn)&(rjrj+l)j+; if(t=0;i) creatheap (r, i, n);for(i= n-1;i=0;i) (t=r0;r0=ri;ri=t;creatheap (r, 0, i-l); return;二路归并void merge(int r, int rl , int low, int mid, int high)进行二合一的函数 (int i=low, j=mid+l, k=low;while(i=mid)&(j=high)(if(ri=rj)rlk+=ri+;elserlk+=rj+;while(i=mid)rlk+=ri
4、+;while(j=high)rlk+=rj+; 一void mergepass (int r , int rl , int length)用来区分填入 merge 函数的变量 计算式(int i=0, j;while (i+2*length=n) (merge (r,rl, i, i+length-l, i+2*length-l);i=i+2*length;if(i+length-ln-l)merge (r, rl, i, i+length-1, nt);elsefor(j=i;jn; j+)rlj=rj;void mergesort(int r)二路并归总算法(int length=l;i
5、nt rln+l;while(lengthn)(mergepass(r, rl, length);length=2*length;mergepass(rl, r, length);length=2*length; return;进行输出void print(int r,int n) (for (int i=0;i=n-l;i+) (if (i%10=0) coutendl; coutrisetw(6);) coutendl;主函数void main() (int i, j, k;int rx, an;clock_t start, finish;double duration;cout请选择排序
6、方式,1、冒泡法;2、快速排序法;3、堆排序法;4、二路 并归法endl;cinj;srand(unsigned) time(?(ull);for(i=0;in;i+) (ai=rand () %10000; switch(j) ( cased): (cout冒泡法; start = clock();for(i=0;im;i+) k=n-l;while(k+1) (rk=ak;k-;)bubblesort (r, );冒泡法 finish = clock();duration = (double)(finish - start)/1000;print(r, x);printf( /z%f se
7、condsll, duration );break;case(2):(cout快速排序法;start = clock();for(i=0;im;i+)(k=n-l;while(k+1)(rk=ak;k-;)quicksort (r, 0, nt);快速排序法)finish = clocko ;duration = (double)(finish - start)/1000;print (r, x);printf ( /z%f secondsll, duration );break;case(3):(cout堆排序法;start = clock();for(i=0;im;i+)(k=n-l;while(k+1)(rk=ak;k-;heapsort (r, x); 堆排序法finish = clock();duration = (double)(finish - start)/1000;print (r, x);printf ( zz%f secondsll, duration );break;case(4):cout 二路并归法;start = clock();for(i=0;im;i+)k=n-l;while(k+1) (rk=ak;k-;)mergesort
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教科版信息技术高一必修 4.2.3表格数据的多元化 说课稿
- 2025年中国波纹管行业投资方向及市场空间预测报告(智研咨询发布)
- 银发经济企业培育的路径设计与实施方案
- 2024版国际贸易交付履行指导协议版B版
- 2025年沪教版高二英语下册月考试卷含答案
- 2025年苏人新版高三英语上册阶段测试试卷
- 2024物业建设让与担保合同 开发商与承包商协议
- 2024年沪科版八年级物理下册阶段测试试卷含答案
- 2025年鲁教版八年级物理上册阶段测试试卷含答案
- 2025年人教新起点选择性必修1地理上册阶段测试试卷
- 主题英语智慧树知到期末考试答案2024年
- 2024HW蓝红攻防网络安全防御体系
- MOOC 电磁场与电磁波理论-南京邮电大学 中国大学慕课答案
- 4-4环网柜倒闸操作票填写与执行
- (2024年)医疗法律法规知识培训课件
- A类《职业能力倾向测验》上海市青浦区2024年事业单位考试统考试题含解析
- 角的概念推广(说课课件)
- 2023-2024学年北京市西城区高二(上)期末物理试卷(含解析)
- 人身侵权案例课件
- 2024年东方航天港海阳产业园开发有限公司招聘笔试参考题库含答案解析
- 福建省泉州市2022-2023学年高一年级上册期末教学质量监测英语试卷(含答案)
评论
0/150
提交评论