大数据结构课程设计

大数据结构课程设计

ID:39179352

大小:241.89 KB

页数:33页

时间:2019-06-26

大数据结构课程设计_第1页
大数据结构课程设计_第2页
大数据结构课程设计_第3页
大数据结构课程设计_第4页
大数据结构课程设计_第5页
资源描述:

《大数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档课程设计说明书课程名称:数据结构和算法设计题目:多种排序院系:计算机科学与信息工程学院学生姓名:学号:专业班级:计科嵌入式(12-1)指导教师:年月日标准文案实用文档课程设计任务书设计题目表达式计算程序设计学生姓名所在院系计科专业、年级、班12计科(嵌入式)设计要求:1)采用如下七种方法实现上述问题求解:插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序。2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。并将数据序列和不同的查找算法的性能结果记录入txt文件。学生应完成的工作:1.利用随机函数产生N个随机

2、整数(10000以上)。2.对这些数字进行排序。3.采用插入、希尔、起泡、快速、选择、归并、堆排序方法解决问题。4.对不同的排序算法进行性能比较并记录。参考文献阅读:1.《数据结构(C语言版)》严蔚敏清华大学出版社2.《C语言程序设计》丁峻岭中国铁道出版社3.《C程序设计》谭浩强清华大学出版社工作计划:任务下达日期:年月日任务完成日期:年月日指导教师(签名):学生(签名):标准文案实用文档多种排序摘要:排序是算法中最基础的问题之一,经典的排序算法是前人不断总结得到的,基于比较的方法是比较直观的方式,主要存在插入法排序、堆排序、希尔排序、归并排序、快速排序,每一种排序算法都有

3、自己的优缺点,比如插入法排序适用于那些长度短的排序,要是长的话,有些爱莫能助啦,堆排序主要是依据了二叉堆的特性,但是创建堆的过程也是一个复杂的问题,希尔排序的过程是一个不断精确的过程,但是目前也只是一个经验方式。归并排序是一个递归的问题,采用分治的思想实现,但是这种算法需要额外的存储空间,快速排序虽然是实践中比较常用的算法,但是对于有序的数组采用快速排序就是灾难。比较型算法的时间复杂度最优也只能到达O(NlogN)。关键词:归并排序快排排序选择排序冒泡排序插入排序堆排序希尔排序内部排序标准文案实用文档目录1.设计背景41.1问题描述41.2问题分析42.设计方案42.1算法

4、设计42.2功能模块分析63.主要算法流程图154.结果与结论164.1正确结果164.2错误信息185.算法复杂度以及稳定性分析186.收获与致谢197.参考文献198.附件201.设计背景标准文案实用文档1.1问题描述利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序。包括:插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序。1.2问题分析经典的排序算法是前人不断总结得到的,基于比较的方法是比较直观的方式,主要存在插入法排序、堆排序、希尔排序、归并排序、快速排序,每一种排序算法都有自己的优缺点。2.设计方案2.1算法设计(1)选

5、择排序在待排序的一组数据元素中,选出最小的一个数据元素与第一个位置的数据元素交换;然后在剩下的数据元素当中再找最小的与第二个位置的数据元素交换,循环到只剩下最后一个数据元素为止。(2)冒泡排序相邻的两个元素进行比较,将小的调到前面,大的调到后面。(3)插入排序待排序的记录放在数组R[0„标准文案实用文档n-1]中排序过程中某一时刻,R被划分成两个子区间R[0,i-1](有序和)R[i„n-1](无序)。直接插入的基本操作是将当前无序区的一个记录R[i]插入到有序区R[0„i-1]中适当的位置(4)快速排序在待排序的数组的n个元素中取一个元素(一般取第一个),将其移动到这样的

6、位置:在其之前的元素的值都小于它,在其之后的元素都大于它,这样是一趟快速排序;然后对数组的两个部分进行同样的操作,直到每部分只有一个记录为止;总之,每趟使表的第一个元素放在适当位置,将表两分,再对两子表进行同样的递归划分,直至划分的子表长度为1。(5)堆排序堆排序中heap算法的时间复杂度与堆所对应的完全二叉树的树高度log2n相关。而heapsort中对heap的调用数量级为n,所以堆排序的整个时间复杂度为O(nlog2n)。并且堆排序是不稳定的。堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单

7、。(6)归并排序将两个或两个以上的有序表组成一个新的有序表。(7)希尔排序将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。增量的选择:在每趟的排序过程都有一个增量,至少满足一个规则增量关系d[1]>d[2]>d[3]>..>d[t]=1(t趟排序);根据增量序列的选取其时间复杂度也会有变化,这个不少论文进行了研究,在此处就不再深究;

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

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

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