ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:159.37KB ,
资源ID:6438863      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6438863.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(内部排序算法比较Word格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

内部排序算法比较Word格式.docx

1、时间复杂度O(n2),空间复杂度O(1)直接插入排序:希尔排序:时间复杂度O(n1.3),空间复杂度O(1)快速排序:时间复杂度O(nlog2n),空间复杂度O(nlog2n)归并排序:时间复杂度O(nlog2n),空间复杂度O(n)2 本程序包含8个模块:(1)伪随机产生数据模块:本程序要求数据是要用伪随机产生程序产生,再用不同排序算法进行排序。(2)简单选择排序模块:运用简单选择排序法对伪随机产生的数据进行排序。(3) 起泡排序模块:运用起泡排序法对伪随机产生的数据进行排序。(4)直接插入排序模块:运用直接插入排序法对伪随机产生的数据进行排序。(5)希尔排序模块:运用希尔排序法对伪随机产生

2、的数据进行排序。(6)快速排序:运用快速排序法对伪随机产生的数据进行排序。(7)归并排序:运用归并排序法对伪随机产生的数据进行排序。(8)条形图表示比较结果:统计6种排序算法的比较结果,用条形图表示出来。三调试分析(1)本题采用结构体储存数据,使相关信息紧密相联系,便于编辑和输出。(2)通过这道题,让我深入理解了内部排序算法,获益良多。调试编码过程中产生的小错误,让我的编程习惯有所改善。四用户使用说明(1)本程序的运行环境为VS2010。(2)进入演示程序后可得到结果。五测试结果点击运行,首先出现的是要输入伪随机产生数据的数目,如图9所示。图9 输入界面输入数据个数然后回车,可显示出不同排序算

3、法的比较次数、移动次数和排序用时。如图10所示。图10 显示比较结果界面显示比较次数的条形图。如图11所示。图11 比较次数条形图界面显示移动次数条形图。如图12所示图12 移动次数条形图界面显示排序用时条形图。如图13所示图13 排序用时条形图界面六、附录 #include#includestring.hmath.htime.h#define LIST_INIT_SIZE 30000int bj1,yd1,n,com,mov;long int A5,B5;double t0,t1,t2,t3,t4,t5,C5;clock_t start_t,end_t;void addlist(SqList

4、 &L) int i;a: printf(请输入你要输入的个数:); scanf(%d,&n); if(n20000) 超出范围重新输入!n goto a; L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(!L.elem)exit(0); L.length=0; for(i=1;i20000)goto b; +L.length;void SelectSort(SqList &L) /简单选择排序 start_t=clock(); int i,j,k,com=0,mov=0;L.length; k=i; for(j=i+1

5、;jj+) com+; if(L.elemj.keyL.elemk.key)k=j; if(i!=k) L.elem0.key=L.elemi.key; L.elemi.key=L.elemk.key; L.elemk.key=L.elem0.key; mov+=3; end_t=clock();比较次数为 %d移动次数为 %dn,com,mov); t0=(double)(end_t-start_t)/CLK_TCK;排序用时为 %fn,t0); A0=com; B0=mov; C0=t0;void bubblesort(SqList &L) /起泡排序 int i=1,j,com=0,mo

6、v=0; while(iL.elemj+1.key) L.elem0.key=L.elemj.key; L.elemj.key=L.elemj+1.key; L.elemj+1.key=L.elem0.key; i+; t1=(double)(end_t-start_t)/CLK_TCK;,t1); A1=com; B1=mov; C1=t1;void InsertSort(SqList &L) /直接插入排序 int i,j,com=0,mov=0; for(i=2;=L.length; if(L.elemi.keyL.elemi-1.key) mov+; j=i-1; while(L.el

7、em0.keyL.elemj.key) L.elemj+1.key=L.elemj.key; j-; t2=(double)(end_t-start_t)/CLK_TCK;,t2); A2=com; B2=mov; C2=t2;void xier(SqList &L) /希尔排序 int i,d=L.length/2,j,w=0,k,com=0,mov=0; while(wd) w=1; for(i=w;i=i+d) for(j=i+d;j=j+d) k=j; w+; d=d/2; t3=(double)(end_t-start_t)/CLK_TCK;,t3); A3=com; B3=mov;

8、 C3=t3;void BeforeSort() yd1=0,bj1=0;void display(int m,int n),m,n);int Partition(SqList L,int low,int high) /快速排序 int pivotkey; L.elem0=L.elemlow; yd1+; pivotkey=L.elemlow.key; while (lowhigh) while(low=pivotkey) -high; L.elemlow=L.elemhigh; bj1+;L.elemlow.key+low; L.elemhigh=L.elemlow; L.elemlow=L

9、.elem0; return low;void QSort(SqList &L,int low,int high) int pivotloc; if(lowhigh) pivotloc=Partition(L,low,high); QSort(L,low,pivotloc-1); QSort(L,pivotloc+1,high);void QuickSort(SqList & BeforeSort(); QSort(L,1,L.length); display(bj1,yd1); t4=(double)(end_t-start_t)/CLK_TCK;,t4); A4=bj1; B4=yd1;

10、C4=t4;void Merge(ElemType R,ElemType R1,int low,int m,int high) /归并排序 int i=low, j=m+1, k=low;=m&=high) if(Ri.key=Rj.key) R1k=Ri; k+; else R1k=Rj; j+;=m) while(jvoid MergePass(ElemType R,ElemType R1,int length, int n) int i=0,j; while(i+2*length-1n) Merge(R,R1,i,i+length-1,i+2*length-1); i=i+2*lengt

11、h; if(i+length-1n-1) Merge(R,R1,i,i+length-1,n-1); for(j=i;n; R1j=Rj;void MSort(ElemType R,ElemType R1,int n) int length=1; while (length MergePass(R,R1,length,n); length=2*length; MergePass(R1,R,length,n);void MergeSort(SqList & MSort(L.elem,L.elem,L.length); t5=(double)(end_t-start_t)/CLK_TCK;,t5)

12、; A5=bj1; B5=yd1; C5=t5;void printf(SqList &long int d6;int i,n;printf(n比较次数nn=nfor(i=0;5; di= sqrt (Ai/A5);n 归并排序: * printf( 选择排序: for(n=0,i=0;n=di;n+)* 冒泡排序: for(n=0,i=1; 直插排序: for(n=0,i=2; 希尔排序: for(n=0,i=3; 快排排序: for(n=0,i=4;n移动次数n double e6; for(i=0;6; ei= sqrt (Bi/B3);n 希尔排序:=ei; 归并排序: for(n=0,i=5;n排序用时n double f6; fi= sqrt (Ci/0.001);=fi; Int main() SqList L; addlist(L);n选择排序: n SelectSort(L);n起泡排序: bubblesort(L);n直插排序: InsertSort(L);addlist(L);n希尔排序: xier(L);n快速排续: QuickSort(L);n归并排序: MergeSort(L); printf(L);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2