数据结构中归并排序的设计与实现

数据结构中归并排序的设计与实现

ID:2468394

大小:171.00 KB

页数:19页

时间:2017-11-16

数据结构中归并排序的设计与实现_第1页
数据结构中归并排序的设计与实现_第2页
数据结构中归并排序的设计与实现_第3页
数据结构中归并排序的设计与实现_第4页
数据结构中归并排序的设计与实现_第5页
资源描述:

《数据结构中归并排序的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、愕疲技整孤鹘呛陕隘钆庆课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目:归并排序的设计与实现初始条件:理论:学习了《数据结构》课程,掌握了基本的数据结构和常用的算法;实践:计算机技术系实验室提供计算机及软件开发环境。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:(1)输入一组数,用递归和非递归程序实现归并排序(2)分析归并排序的复杂度(3)将归并排序的思想用于外部排序中2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:(1)设计题

2、目;(2)摘要和关键字(中文和英文);(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、设计体会等;(4)结束语;(5)参考文献。时间安排:2010年元月10日-14日(第19周)元月10日查阅资料元月11日系统设计,数据结构设计,算法设计元月12日-13日编程并上机调试元月14日撰写报告元月15日验收程序,提交设计报告书。指导教师签名:2010年元月10日系主任(或责任教师)签名:2010年元月10日愕疲技整孤鹘呛陕隘钆庆归并排序的设计和实现摘要:该程序主要由五个部分组成:把一组待排的数据信息放在结构体里

3、,2-路归并排序,对数组作一趟归并排序,对数组作归并排序,主函数。Abstract:Theprogrammainlyconsistsoffiveparts:thearowofdatatobeplacedonstructure,the2-waymergesort,foratriptothearray Mergesort,mergesortonthearrayasthemainfunction.关键字:模型化,2-路归并,一趟归并,归并Keywords:modeling,2-waymerge,atriptomerge,merge 0

4、.引言归并排序是一种稳定的内部排序,“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储结构还是链表存储结构,都可在O(m+n)的时间量级上实现。利用归并的思想容易实现排序。2—路归并排序:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到不小于n/2整数个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止。1.算法把握1.1归并排序算法的具体分析咋一看,归并排序时一种“费力不讨好”的排序方法,因为最后一趟始终要对整个序列进

5、行排序,这会使的前几趟的排序似乎是在做无用功,其实不然。对初始关键字两两分组并进行组内排序后,在下一次处理中,并不是简单地在组容量扩大一倍的基础上重新排序,而是把上一趟已经排好序的两组数组重新合并成一个新的有序组。这个把两个有序组合并到一个新的有序组的过程要比单独排序快得多。归并排序的核心操作时合并有序组。对于最开始的两两分组,也可以看成是两个只含有1个关键字的组进行合并。愕疲技整孤鹘呛陕隘钆庆1.2除了核心的合并操作外,需要先把序列进行分组,每次组容量减半,直到组内只有一个关键字为止,再对组进行合并,直到所有关键字都属于一组为

6、止。实际上,分组采用递归的方法更加方便。2.需求分析(1)通过建立一个结构体,用来存放数据信息,包括数据的个数,本身记录。(2)2-路归并排序的算法,实现两两归并。(3)主函数初始化数据,选择归并排序的方法及打印数据结果。3.数据结构设计用结构体存储待排的数据。#include#defineMAX100/*定义MAX是最大的允许输入数字个数*/typedefstruct{intn;/*n为文件中的记录个数,n

7、归算法//将有序的SR[i..m]和SR[m+1..n]归并为有序的TR[i..n]voidmerge(RcdTypeSR[],RcdType&TR[],inti,intm,intn){for(j=m+1,k=I;i<=m&&j<=n;k++){//将SR中记录由小到大的并入TRif(LQ(SR[i].key,SR[j].key))TR[k]=SR[i++];愕疲技整孤鹘呛陕隘钆庆elseTR[k]=SR[j++];}if(i<=m)TR[k..n]=SR[i..m];//将剩余的SR[i..m]复制到TRif(j<=n)TR[

8、k..n]=SR[j..n];//将剩余的SR[i..m]复制到TR}//merge4.22-路归并排序的递归形式voidMsort(RcdTypeSR[],RcdType&TR1[],ints,intt){//将SR归并排序为TRif(s==t)TR1[s]=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。