- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排序算法实现与演示系统.doc
中北大学 数 据 结 构 课 程 设 计 说 明 书 ?? 学生姓名: 学 号: ? 学生姓名: 学 号: 学生姓名: 学 号: 学生姓名: 学 号: 学 院: 专 业: 题 目: 排序算法实现与演示系统 成绩 指导教师 ? ?? ?1.设计目的 本系统是为了实现和比较各种不同排序方法的不同复杂度,而建立的,从不同的角度比较各算法的优劣,从而使使用者能对个排序方法有更清晰的了解. 设计内容和要求 本次设计的内容主要有实现各种排序算法以及比较各种算法。要求主要是要执行对一种数据类型的序列进行所有排序方法的排序计算,并返回序列及各算法的排序指标。 3.本设计所采用的数据结构 本次设计主要采用的数据结构有结构体定义,直接排序,选择排序,归并排序,快速排序,冒泡排序,希尔排序,堆排序等。 4.功能模块详细设计 4.1 详细设计思想 本次设计分主题设计和模块设计两部分。 主体设计方面,本系统的主要数据类型为含有一个关键字的结构体类型,命名为datatype;设置两个全局变量数组,cn和mn,分别用于记录每种排序方法中的各排序元素的比较次数和移动次数(关键字交换以3次计)的总和。 模块设计方面,本系统大致可分为排序模块部分和运行模块部分。排序模块部分分为归并排序模块,快速排序模块,冒泡排序模块,选择排序模块,直接排序模块,希尔排序模块,堆排序模块;运行模块部分分为主函数,自行输入模块,随机模块,输出模块。 以下是各排序算法的核心设计思想: 冒泡排序 相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其他的数进行类似操作 快速排序 使用分治法(Divide?and?conquer)策略来把一个序列(list)分为两个子序列(sub-lists)?,从数列中挑出一个元素,称为?基准,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边),递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子序列排序 插入排序 将一个记录插入到已排好序的有序表(有可能是空表)中,从而得到一个新的记录数增1的有序表 选择排序 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,?顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完 希尔排序 将待排序的元素分为多个子序列,使得每个子序列的元素个数相对较少,对各个子序列分别进行直接插入排序,待整个待排序序列“基本有序”后,再对所有元素进行一次直接插入 堆排序 堆排序(HeapSort)是一树形选择排序。堆排序的特点是:在排序过程中,将R[l..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系(参见二叉树的顺序存储结构),在当前无序区中选择关键字最大(或最小)的记录 归并排序 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 运行模块个算法如下: 主函数 首先选择一种生成原始数列的方法,然后经过选择进入相应的界面,将数据排序后输出,并显示出排序比较结果。 手动输入函数 依次输入数据,记录在一个已定义的寄存器中,待排序时使用。排序时将各排序模块函数调用,排序得出结果。 自动输入函数 调用已有的库函数产生所输入的个数的数列,然后调用已有排序函数,得到排序后数列,然后输出。 4.2 核心代码 #includestdio.h #includestdlib.h #includeconio.h #define MAXNUM 100 typedef struct { int key; } datatype; datatype R[MAXNUM];/*定义类型*/ int cn[MAXNUM],mn[MAXNUM]; void D_InsertSort(datatype R[ ], int n)/*直接排序*/ { int i,j; extern int cn[MAXNUM],mn[MAXNUM]; for(i=2; i=n; i++) { cn[0]++; if (R[i].keyR[i-1].key) {R[0]=R[i]; mn[0]++; for(j=i-1; R[0].keyR[j].key; j--) R[j+1]=R[j]; R[j+1]=R[0]; mn[0]+=2; } } } void Select_Sort(dat
您可能关注的文档
- sactrp-tariff-of-feessactrp关税费用.doc
- Data Problems in SEM在扫描电子显微镜中的数据问题.doc
- 七年级数学下导学案(新集初中)_.doc
- VC毕业论文局域网语音通信毕业论文.doc
- VB工资管理系统vb+access.doc
- Household, Work and Flexibility - HWF家庭,工作和灵活性- HWF.doc
- 中国电力企业多种经营协会2004年工作总结.doc
- 四川理工学院成都新华学院.doc
- 《解释》有关第一审普通程序的问题分析.doc
- 论广西学生英语语音学习的难点及对策.doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
有哪些信誉好的足球投注网站
文档评论(0)