比较冒泡排序与快速排序的性能

上传人:hs****ma 文档编号:460014739 上传时间:2023-06-28 格式:DOC 页数:18 大小:784.50KB
返回 下载 相关 举报
比较冒泡排序与快速排序的性能_第1页
第1页 / 共18页
比较冒泡排序与快速排序的性能_第2页
第2页 / 共18页
比较冒泡排序与快速排序的性能_第3页
第3页 / 共18页
比较冒泡排序与快速排序的性能_第4页
第4页 / 共18页
比较冒泡排序与快速排序的性能_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《比较冒泡排序与快速排序的性能》由会员分享,可在线阅读,更多相关《比较冒泡排序与快速排序的性能(18页珍藏版)》请在金锄头文库上搜索。

1、南华大学计算机科学与技术学院 实验报告南华大学计算机科学与技术学院实 验 报 告 (2011年度 第 1 学期 )课程名称算法设计与分析实验名称比较冒泡排序与快速排序的性能姓名彭赐缘学号20094360131专业网络工程班级091地点8教实验室教师刘立1.掌握冒泡排序方法,快速排序方法,并掌握用高级语言实现排序算法的方法;2.深刻理解冒泡排序和快速排序的定义和特点,并能加以灵活应用;3.两种方法的排序过程及其依据的原则,并掌握各种排序方法的时间复杂性和稳定性的分析方法。时间,效率,性能分析和比较得出优劣,由此了解到在不同条件下冒泡法与快速排序算法的选择(软件硬件及条件)硬件:台式组装电脑,软件

2、:windows , (1)算法流程图冒泡排序: 快速排序: (2)程序代码#includeiostream.h#includestdio.h#includestdlib.h#includetime.h long Bubblesort(long R,long n) int flag=1; long BC=0; for(long i=1;i=i;j-) if(RjRj-1) long t=Rj; Rj=Rj-1; Rj-1=t; flag=1; BC+; return BC;long Bubblesortcompare(long R,long n) int flag=1; long BC=0;

3、for(long i=1;i=i;j-) if(Rj=Rj-1) BC+; return BC;long quicksort(long R,long left,long right) static long QC=0; long i=left,j=right; long temp=Ri; while(itemp)&(ji) QC+; j=j-1; if(ji) Ri=Rj; i=i+1; QC+; while(Rii) QC+; i=i+1; if(ij) Rj=Ri; j=j-1; QC+; /二次划分得到基准值的正确位置 Ri=temp; if(lefti-1) quicksort(R,l

4、eft,i-1); /递归调用左子区间 if(i+1right) quicksort(R,i+1,right); /递归调用右子区间 return QC;long quicksortcompare(long R,long left,long right) static long QC=0;long i=left,j=right; long temp=Ri; while(itemp)&(ji) QC+; j=j-1; if(ji) Ri=Rj; i=i+1; while(Rii) QC+; i=i+1; if(ij) Rj=Ri; j=j-1; /二次划分得到基准值的正确位置 Ri=temp;

5、if(lefti-1) quicksort(R,left,i-1); /递归调用左子区间 if(i+1right) quicksort(R,i+1,right); /递归调用右子区间 return QC;void operate1(long a,long n) long*R=new longn; time_t start,end; double dif; long degree,compare; int i; for(i=0;in;i+) Ri=ai; time(&start); degree=Bubblesort(R,n); time(&end); dif=difftime(end,star

6、t); cout冒泡排序交换次数:tdegreen; for(i=0;in;i+) Ri=ai; compare=Bubblesortcompare(R,n); cout冒泡排序比较次数:tcomparen; void operate2(long a,long n) long*R=new longn; time_t start,end; double dif; long degree,compare; int i; for(i=0;in;i+) Ri=ai; time(&start); degree=quicksort(R,0,n-1); time(&end); dif=difftime(en

7、d,start); cout快速排序交换次数:tdegreen; for(i=0;in;i+) Ri=ai; compare=quicksortcompare(R,0,n-1); cout快速排序比较次数:tcomparen; coutn; void main(int argc, char* argv) clock_t start_0, finish,start_1,finish_1; double duration; long n; char check;coutn* 排序算法比较 *endl; cout=endl; while(1) coutn; coutendl; long*a=new

8、longn; srand(unsigned long)time(NULL); for(long i=0;in;i+) ai=rand()%n; start_0 = clock(); operate1(a,n);finish = clock(); coutn; duration = (double)(finish - start_0) / CLOCKS_PER_SEC; cout程序运行花费时间: duration秒nnn;start_1 = clock(); operate2(a,n);finish_1 = clock(); coutn; duration = (double)(finish_

9、1 - start_1) / CLOCKS_PER_SEC; cout程序运行花费时间: duration秒nnn;coutcheck; if(check=y|check=Y) continue; if(check=n|check=N) break; (1)实验结果截图(2)实验结果统计表方法规模N50300100020003000400050007000100003000050000100000冒泡排序交换次数6282168224990499894822424283970061629613712143335249373042241483846243233721798170008比较次数185266532749404299794867409281196806118793637366398357493230467413338418742983721093187304运行花费时间(ms)001531781722548410008953

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号