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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4482102.html】到电脑端继续下载(重复下载【60天内】不扣币)。

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(数据结构课程设计(内部排序算法比较-C语言).doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构课程设计(内部排序算法比较-C语言).doc

1、完整word版)数据结构课程设计(内部排序算法比较_C语言) 课题:内部排序算法比较 第一章 问题描述 排序是数据结构中重要的一个部分,也是在实际开发中易遇到的问题,所以研究各种排算法的时间消耗对于在实际应用当中很有必要通过分析实际结合算法的特性进行选择和使用哪种算法可以使实际问题得到更好更充分的解决!该系统通过对各种内部排序算法如直接插入排序,冒泡排序,简单选择排序,快速排序,希尔排序,堆排序、二路归并排序等,以关键码的比较次数和移动次数分析其特点,并进行比较,估算每种算法的时间消耗,从而比较各种算法的优劣和使用情况!排序表的数据是多

2、种不同的情况,如随机产生数据、极端的数据如已是正序或逆序数据。比较的结果用一个直方图表示。 第二章 系统分析 界面的设计如图所示: |******************************| |-------欢 迎 使 用---------| |-----(1)随 机 取 数-------| |-----(2)自 行 输 入-------| |-----(0)退 出 使 用-------| |******************************|

3、 请 选 择 操 作 方 式: 如上图所示该系统的功能有: (1):选择1 时系统由客户输入要进行测试的元素个数由电脑随机选取数字进行各种排序结果得到准确的比较和移动次数并打印出结果。 (2)选择2 时系统由客户自己输入要进行测试的元素进行各种排序结果得到准确的比较和移动次数并打印出结果。 (3)选择0 打印“谢谢使用!!”退出系统的使用!! 第三章 系统设计 (I) 友好的人机界面设计:(如图3.1所示) |******************************| |-------欢 迎 使 用---------|

4、 |-----(1)随 机 取 数-------| |-----(2)自 行 输 入-------| |-----(0)退 出 使 用-------| |******************************| (3.1) (II)方便快捷的操作:用户只需要根据不同的需要在界面上输入系统提醒的操作形式直接进行相应的操作方式即可!如图(3.2所示) |******************************| |-------欢 迎 使 用------

5、 |-----(1)随 机 取 数-------| |-----(2)自 行 输 入-------| |-----(0)退 出 使 用-------| |******************************| 请 选 择 操 作 方 式:(用户在此输入操作方式) (3.2) (III)系统采用定义结构体数组来存储数据 。 (IV)功能介绍: (1)操作功能:a .当用户选择随即电脑随机取数时 系统将弹出——>请输入你要输入的个数 :(用户在此输入

6、要电脑取数的个数) 要是用户输入的数据过大系统将提醒错误——>超出范围重新输入!!! b . .当用户选择自行输入时 系统将弹出——>请输入你要输入的个数(不大于于30的整数): 当用户输完元素的个数之后系统将提示用户依次输入各个元素。 ——>请输入各个元素: (2) 排序功能:系统有 简单选择排序,冒泡排序,堆排序,二路归并排序,快速排序的功能。 (3)打印清晰:系统会打印出在排序操作之前电脑随机取数或者用户输入的原始排列顺序;并将排序操作之后的有序数据打印在原始数据的下面以便用户的对比。在排序操作

7、结束之后系统将以直方图的形式打出排序过程中比较和移动次数让客户一目了然地看到排序的结果: 比 较 结 果 排序方式 比较次数 移动次数 直 接 简单选择 冒 泡 堆 排 序 直 接 快 速 第四章 系统实现 (一)定义结构体数组: typedef struct { int key; } datatype; datatype R[MAXNUM];//定义结构体数组

8、 (二)直接排序: void D_InsertSort(datatype R[ ], int n)//直接排序 { int i,j; for(i=2; i<=n; i++) { cn[0]++; if (R[i].key

9、ect_Sort(datatype R[ ],int n)//简单选择排序 { int i,j,k; for(i=1;i

10、 R[i]=R[0]; mn[1]+=3; } } } (四)冒泡排序: void Bubble_Sort (datatype R[ ], int n)//冒泡排序 { int i, j; int swap; for(i=1; i

11、 {R[0]=R[j]; R[j]=R[j+1]; R[j+1]=R[0]; mn[2]+=3; swap=1; }} if(swap==0) break; } } (五)堆排序: void HeapAdjust(datatype R[ ], int s, int t) { datatype rc; int i,j ; rc=R[s]; i=s; for(j=2*i; j<=t; j=2*j)

12、 { cn[3]++; if(j R[j].key) break; R[i]=R[j]; mn[3]++; i=j; } R[i]=rc; } void HeapSort(datatype R[ ], int n)//堆排序 { int i; for(i=n/2; i>0; i-- ) HeapAdjust(R, i, n); for(i=n; i>1; i--) {

13、 R[0]=R[1]; R[1]=R[i]; R[i]=R[0]; mn[3]+=3; HeapAdjust(R,1, i-1); } } (六)归并排序: void Merge(datatype R[ ], datatype R1[ ], int s, int m , int t) { int i,j,k; i=s; j=m+1; k=s; while (i<=m&&j<=t) { cn[4]++; if(R[i].key

14、 { R1[k++]=R[i++]; mn[4]++;} else { R1[k++]=R[j++]; mn[4]++;} } while (i<=m) { R1[k++]=R[i++]; mn[4]++; } while (j<=t) { R1[k++]=R[j++]; mn[4]++;} } void MSort(datatype R[ ], datatype R1[ ], int s, int t) { int m; if(s==t) { R1[s]=R[s]; mn[4]++;} else

15、 {m=(s+t)/2; MSort(R, R1, s, m); MSort(R, R1, m+1, t); Merge(R1, R, s, m, t); } } void MergeSort(datatype R[ ], datatype R1[ ], int n)//归并排序 { MSort(R, R1,1, n); } int Partition(datatype R[ ], int low, int high) { R[0]=R[low]; mn[5]++; while(low<

16、high) { while(low=R[0].key) {cn[5]++; high--;} if(low

17、七)快速排序: void Quick_Sort(datatype R[ ], int s, int t)//快速排序 { int i; if( s

18、i++) printf("%d ",R[i]); printf("\n "); } (八)电脑随机取数: void sui_ji() { int i,n; datatype R[MAXNUM]={0}; a: printf("请输入你要输入的个数:"); scanf("%d",&n); if(n>25) { printf("超出范围重新输入!!!\n");

19、 goto a; } addlist(R,n); printf("排序前元素顺序为:"); for(i=1;i

20、 datatype R1[MAXNUM]={0}; MergeSort(R, R1, n);//二路归并排序 Quick_Sort(R,0, n);//快速排序 } (九)用户自行输入: void zixing_input() { int n,i; datatype R1[MAXNUM]={0}; printf("请输入你要输入的个数(不大于于30的整数):"); scanf("%d",&n); printf("请输入各个元素:"); for(

21、i=1;i

22、//堆排序 datatype R2[MAXNUM]={0}; MergeSort(R1, R2, n);//二路归并排序 Quick_Sort(R1,0, n);//快速排序 } (十)主函数调用: int main(void) { int s; printf(" |******************************|\n"); printf(" |-------欢 迎 使 用-----------------|\n")

23、 printf(" |-----(1)随 机 取 数-------------|\n"); printf(" |-----(2)自 行 输 入-------------|\n"); printf(" |-----(0)退 出 使 用-------------|\n"); printf(" |******************************|\n"); printf(" 请 选 择 操 作 方 式: "); s

24、canf("%d",&s); switch(s) { case 1: system("cls") ; sui_ji(); break; case 2: system("cls") ; zixing_input(); break; case 0: printf(" 谢谢使用!! "); exit(0); break; } printf("\n "); printf(" 比 较 结 果

25、 \n"); printf(" \n"); printf(" 排序方式 比较次数 移动次数\n"); printf(" \n"); printf(" 直 接 %d %d \n",cn[0],mn[0]); printf(" \n"); printf(" 简单选择 %d %d \n",cn[1],mn[1]); printf(" \n"); printf("

26、 冒 泡 %d %d \n",cn[2],mn[2]); printf(" \n"); printf(" 堆 排 序 %d %d \n",cn[3],mn[3]); printf(" \n"); printf(" 二路归并 %d %d \n",cn[4],mn[4]); printf(" \n"); print

27、f(" 快 速 %d %d \n",cn[5],mn[5]); } 第五章 系统测试 (一) 随机取数的测试: (二)自行输入的测试: (三)退出系统: (四)时间的估算: 排序方法 平均时间性能 最好时间性能 最坏时间性能 直 接 O(n2) O(n) O(n2) 简单选择 O(n2) O(n) O(n2) 冒 泡 O(n2) O(n) O(n2) 堆 排 序 O(nl

28、og2 n) O(nlog2 n) O(nlog2 n) 直 接 O(nlog2 n) O(nlog2 n) O(nlog2 n) 快 速 O(nlog2 n) O(nlog2 n) O(nlog2 n) 参考文献 1. 作者:张晓莉 王苗 《数据结构与算法》 机械工业出版社 2008年7月 2. 作者:杨升 《数据结构》 厦门大学出版社 2009年6月 教师评语和成绩 2010 年 6 月 框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。16

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服