1 / 19
文档名称:

排序算法实验报告.docx

格式:docx   大小:731KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

排序算法实验报告.docx

上传人:459972402 2020/8/31 文件大小:731 KB

下载得到文件列表

排序算法实验报告.docx

文档介绍

文档介绍:数据结构实验报告八种排序算法实验报告一、实验内容编写关于八种排序算法的C语言程序,要求包含直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序和基数排序。二、实验步骤各种内部排序算法的比较:八种排序算法的复杂度分析(时间与空间)。八种排序算法的C语言编程实现。八种排序算法的比较,包括比较次数、移动次数。三、稳定性,时间复杂度和空间复杂度分析比较时间复杂度函数的情况:时间复杂度函数 O(n)的增长情况所以对n较大的排序记录。一般的选择都是时间复杂度为方法。时间复杂度来说:(1)平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlog2n)) 排序O(nlog2n)的排序快速排序、堆排序和归并排序;(3)O(n1+§))排序,§是介于0和1之间的常数。希尔排序(4)线性阶(O(n))排序基数排序,此外还有桶、箱排序。说明:当原表有序或基本有序时,直接插入排序和冒泡排序将大大减少比较次数和移动记录的次数,时间复杂度可降至O(n);而快速排序则相反,当原表基本有序时,将蜕化为冒泡排序,时间复杂度提高为O(n2);原表是否有序,对简单选择排序、堆排序、归并排序和基数排序的时间复杂度影响不大。稳定性:排序算法的稳定性:若待排序的序列中,存在多个具有相同关键字的记录,经过排序,这些记录的相对次序保持不变,则称该算法是稳定的;若经排序后,记录的相对次序发生了改变,则称该算法是不稳定的。稳定性的好处:排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,可以避免多余的比较;稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序四、设计细节排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。插入排序---直接插入排序(StraightlnsertionSort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用 。直接插入排序示例:如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序, 所以插入排序是稳定的。时效分析:时间复杂度:O(n^2)插入排序—希尔排序(Shell`sSort),相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列t1,t2,⋯,tk,其中ti>tj,tk=1;按增量序列个数k,对序列进行k趟排序;每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m的子序列,分别对各子表进行直接插入排序。仅增量因子为1时,整个序列作为一个表来处理,表长度即为整个序列的长度。希尔排序的示例:算法的实现:我们简单处理增量序列:增量序列d={n/2,n/4,n/8.....1}n为要排序数的个数即:先将要排序的一组记录按某个增量d(n/2,n为要排序数的个数)分成若干组子序列,,然后再用一个较小的增量d/2)对它进行分组,在每组中再进行直接插入排序。继续不断缩小增量直至为1,最后使用直接插入排序完成排序。时效分析:希尔排序时效分析很难,关键码的比较次数与记录移动次数依赖于增量因子序列d的选取,特定情况下可以准确估算出关键码的比较次数和记录的移动次数。目前还没有人给出选取最好的增量因子序列的方法。增量因子序列可以有各种取法,有取奇数的,也有取质数的,但需要注意:增量因子中1外没有公因子,且最后一个增量因子必须为1。希尔排序方法是一个不稳定的排序方法。选择排序—简单选择排序(SimpleSelectionSort)基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。简单选择排序的示例:操作方法:第一趟,从n个记录中找出关键

最近更新

人教版六年级下册数学第四单元《比例》测试卷.. 7页

人教版四年级下册数学期中测试卷及答案【夺冠.. 7页

六年级下册数学 圆柱与圆锥 测试卷【word】 7页

六年级下册数学 圆柱与圆锥 测试卷附参考答案.. 7页

冀教版六年级下册数学第三单元 正比例、反比例.. 8页

冀教版六年级下册数学第三单元 正比例、反比例.. 7页

北京版六年级下册数学第二单元 比和比例 测试.. 7页

北师大版六年级下册数学期末测试卷及参考答案.. 6页

北师大版六年级下册数学第一单元 圆柱和圆锥 .. 6页

北师大版六年级下册数学第一单元 圆柱和圆锥 .. 7页

北师大版六年级下册数学第四单元 正比例和反比.. 7页

小升初六年级下册数学期末测试卷【能力提升】.. 6页

小升初数学应用题大全含答案(夺分金卷) 16页

小升初数学必刷应用题及参考答案(培优b卷) 14页

小升初数学必刷应用题附答案【综合卷】 15页

小升初数学期末模拟测试卷精品【全优】 7页

小升初数学期末测试卷及答案【精选题】 6页

小学六年级下册数学《圆柱与圆锥》专项练习及.. 7页

小学六年级下册数学《圆柱与圆锥》专项练习附.. 7页

小学六年级下册数学圆柱与圆锥测试题带答案(.. 7页

小学六年级下册数学期中测试卷及参考答案【综.. 7页

小学六年级下册数学期中测试卷附参考答案(实.. 6页

小学六年级下册数学期末测试卷含完整答案(网.. 6页

日常生活突发事故急救知识及处理方法考试题库.. 33页

2024年安全总结 6页

折扣超市项目融资方案 7页

执业医师法的职业规划设计 6页

手工艺术品项目招股说明书 7页

2024年安徽省中考化学试题及答案 7页

小学一到六年级英语语法知识点汇总 8页