欢迎来到天天文库
浏览记录
ID:47120476
大小:1.26 MB
页数:6页
时间:2019-08-08
《冒泡排序和快速排序实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告实验名称实验三冒泡排序和快速排序班级学号姓名成绩实验概述:【实验目的及要求】实验目的:通过编程程序达到熟悉并掌握教材中所介绍的几种排序方法。实验要求:1)随机产生20位整数2)输入序列,编写程序,按下列排序方法将序列从小到大排序并输出。1.冒泡排序2.快速排序3)纪录每种方法比较次数和移动次数4)随机产生2000位整数,重做实验2),比较两种算法需要的计算时间。【实验原理】1.随机产生20位整数随机数的产生见实验一。创立一个数组,将产生的随机数存入数组。2.冒泡排序对于带排序的数组L(n),使用冒泡排序的算法如下:输入
2、:数组L(n)(无序)输出:数组L(n)(有序)f=1While(f>0)Do{k=f+1;f=0;Forj=nTokStep-1{IfL(j-1)>L(j)Then{T=L(j);L(j)=L(j+1);L(j+1)=T;f=j;}}}3.快速排序对于带排序的数组P(n),使用快速排序的算法如下:输入:待排序的子表P(m:n)。输出:有序子表P(m:n)。PROCEDUREQKSORT1(P,m,n)IF(n>m)THEN[子表不空]{SPLIT(P,m,n,i);[分割]QKSORT1(P,m,i-1);[对前面子表进行快
3、速排序]QKSORT1(p,i+1,n);[对后面子表进行快速排序]}RETURN4.纪录每种方法比较次数和移动次数设变量X,Y,记录上面算法比较和移动的次数。5.关于计算时间的比较使用GetTickCount来记录算法使用时间,具体算法如下:DWORDstart_time;DWORDend_time;DWORDrun_time;start_time=GetTickCount();算法();end_time=GetTickCount();run_time=end_time-start_time;【实验环境】(使用的软硬件)1.
4、硬件:笔记本。2.软件:WindowXP、TurboC3.0实验内容:【实验方案设计】冒泡法排序的程序如下:#include#include#defineN20intcomp=0,move=0;main(){longm=65536;longy=0;intx[N],i=0,j,temp;printf("maopaofapaixu:");printf("zuichuchanshengdesuijishu:");for(;i5、(int)(1000*y/m);printf("%dt",x[i]);}for(j=0;jj;i--){comp++;if(x[i-1]>x[i]){temp=x[i];x[i]=x[i-1];x[i-1]=temp;move++;}}printf("paihaohoudesuijishu:");for(i=0;i6、e#include#include#defineN20intcomp=0,move=0;main(){voidkuaisu(intx[],intleft,intright);longm=65536;longy=0;intx[N],i=0,j,temp,left=0,right=N-1;printf("kuaisufapaixu:");printf("zuichuchanshengdesuijishuruxia:");for(;i7、3849)%m;x[i]=(int)(1000*y/m);printf("%dt",x[i]);}printf("");kuaisu(x,left,right);printf("yongkuaisufapaihaohoudeshu:");for(i=0;i8、=x[left];if(left>right){return;}while(i!=j){comp++;while(x[j]>=temp&&j>i){j--;}if(j>i){x[i++]=x[j];move++;}while(x[i]<=temp&&j>i){i++;}if(
5、(int)(1000*y/m);printf("%dt",x[i]);}for(j=0;jj;i--){comp++;if(x[i-1]>x[i]){temp=x[i];x[i]=x[i-1];x[i-1]=temp;move++;}}printf("paihaohoudesuijishu:");for(i=0;i6、e#include#include#defineN20intcomp=0,move=0;main(){voidkuaisu(intx[],intleft,intright);longm=65536;longy=0;intx[N],i=0,j,temp,left=0,right=N-1;printf("kuaisufapaixu:");printf("zuichuchanshengdesuijishuruxia:");for(;i7、3849)%m;x[i]=(int)(1000*y/m);printf("%dt",x[i]);}printf("");kuaisu(x,left,right);printf("yongkuaisufapaihaohoudeshu:");for(i=0;i8、=x[left];if(left>right){return;}while(i!=j){comp++;while(x[j]>=temp&&j>i){j--;}if(j>i){x[i++]=x[j];move++;}while(x[i]<=temp&&j>i){i++;}if(
6、e#include#include#defineN20intcomp=0,move=0;main(){voidkuaisu(intx[],intleft,intright);longm=65536;longy=0;intx[N],i=0,j,temp,left=0,right=N-1;printf("kuaisufapaixu:");printf("zuichuchanshengdesuijishuruxia:");for(;i7、3849)%m;x[i]=(int)(1000*y/m);printf("%dt",x[i]);}printf("");kuaisu(x,left,right);printf("yongkuaisufapaihaohoudeshu:");for(i=0;i8、=x[left];if(left>right){return;}while(i!=j){comp++;while(x[j]>=temp&&j>i){j--;}if(j>i){x[i++]=x[j];move++;}while(x[i]<=temp&&j>i){i++;}if(
7、3849)%m;x[i]=(int)(1000*y/m);printf("%dt",x[i]);}printf("");kuaisu(x,left,right);printf("yongkuaisufapaihaohoudeshu:");for(i=0;i8、=x[left];if(left>right){return;}while(i!=j){comp++;while(x[j]>=temp&&j>i){j--;}if(j>i){x[i++]=x[j];move++;}while(x[i]<=temp&&j>i){i++;}if(
8、=x[left];if(left>right){return;}while(i!=j){comp++;while(x[j]>=temp&&j>i){j--;}if(j>i){x[i++]=x[j];move++;}while(x[i]<=temp&&j>i){i++;}if(
此文档下载收益归作者所有