




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程的内容、10.1概要10.2插入排序10.3交换排序10.4选择排序10.5归并分类10.6基数排序,第10章内部排序,10.1概要,1 .排序是指将杂乱的数据定径套按照一定的规则进行排序。 2 .排序的目的是什么?存储在数据表中,按关键词进行排序,可使检索变得容易,10.1概要,3 .排序算法的好坏如何衡量?时间效率排名速度(即排名的所有比较次数) 如果空间效率存储器辅助空间中所占大小排序算法所需的辅助空间不依赖于问题的大小n,即,如果空间复杂度为O(1),则排序方法为帧内蕾丝花边排序,并且“否”为帧内蕾丝花边排序稳定性中的两个查询密码a和b的牛鼻子字值相等,但是具有排序后的优先
2、级a和b 4 .什么是内部排序? 什么是外部排序? 的双曲馀弦值。 如果要排序的所有记录查询密码都在内存中,则称为内部排序的内部排序的基本操作(称为内部排序)有两种:比较两个牛鼻子字的大小和比较两个牛鼻子字的大小(比不可缺少的操作)移动存储位置。 如果要排序的部分记录查询密码位于内存中,而部分记录位于外部,则称为外部排序。 注:外部排序时,要将数据分割为内存进行排序,必须将中间结果立即存入外部内存。 显然外部排序很复杂。 5 .如何在内存中存储和处理要排序的记录查询密码? 处理方法:顺序排序数据之间的逻辑性顺序关系由物理位置的相邻关系表示,适用于排序时直接移动记录查询密码的数据较少的情况! 网
3、络链接表排序数据间的逻辑性顺序关系用节点中的指针来表现,排序时仅修正指针,移动了数据的地址排序数据存储在连续地址的空间中,建构辅助表来保持各数据的存储地址(指针),排序时保持辅助表适用于数据较多的场合! 注意:大多数排序算法定义了顺序表结构(便于直接移动元素)、6 .如何表示顺序存储(顺序表)的抽象数据类型以及Typedef struct /每个查询密码(数据元素)的结构KeyType key。 /牛鼻子字InfoType otherinfo; /其他数据项目RecordType;Typedef struct /定义顺序表的结构RecordType r MAXSIZE 1; /存储顺序表的向量
4、/r0一般为哨所或缓冲区int length; /顺控表的长度SqList;# define MAXSIZE 20 /个以下的类型键盘类型; /调整牛鼻子字的量(int型)、7 .内部排名的算法是什么? 根据排序规则,插入排序交换排序(重点是高速排序)选择排序合并基准排序,d牛鼻子字的二进制位数(长度),根据排序算法的时间复杂度不同,可以分为3种:简单的排序算法:时间效率低,O(n2 ) 高级排序算法333 O(dn ),10.2插入排序,插入排序的基本思想是,插入排序有多个具体的实现算法:1)直接插入排序2 )半插入排序3) 2通道插入排序4 )希尔排序,每个步骤要排序的对象按其关键尺寸按之
5、前插入。 简单来说,插入时重新排序,以便在子序列中随时重新排序。 1 )直接插入排序,在哪里插入新元素? 例1 :牛鼻子字序列t=(13、6、3、31、9、27、5、11 )请直接写入插入排序的中间过程序列。 (13 )、6、3、31、9、27、5、11、6、13 )、3、31、9、27、5、11、3、6、6、9、31 )、5、11、3、5、6、9、31 最简单的排序方法! 例2 :请写出牛鼻子字系列t=(21、25、49、25*、16、08 )直接插入排序的具体实现过程。*表示接下来的25、i=1、21、i=2、i=3、i=5、i=4、i=6、25、25、49的程序执行过程是:初始状态:16
6、、25、21、16,完成! 时间效率: O(n2)是因为在最坏的情况下,所有要素的比较次数的总和为(01n-1)O(n2)。 其他情况下,移动元素的次数也相加。 空间效率:因为O(1)只占有一个缓冲单元算法的稳定性:稳定性在25*排序后也在25后面。 对应计程仪计划请参照教材P265。 Void InsertSort(SqList /插入到正确位置/InsertSort,如果不需要增加辅助空间的排序的对象数为n,则算法需要插入n-1次。 在最佳情况下,排序前的对象已经按照牛鼻子查询密码大小的升序排列,并且每一回合仅与前一排序对象序列中最后一个对象的牛鼻子查询密码进行比较,而无需移动对象,因此总
7、牛鼻子查询密码比较次数为n-1。 直接插入排序的算法分析,最坏的情况是,在插入第I个回合时,第I个对象必须和前面的i-1个对象进行牛鼻子查询密码比较,每一次比较都要进行一次数据移动。 如果综合牛鼻子查询密码比较次数KCN和目标移动次数RMN在被排序的目标序列中各种可排列的概率分别相同,则能够取得上述最佳情况和最坏情况的平均情况。 平均情况下的牛鼻子查询密码比较次数和对象移动次数约为n2/4。 因此,直接插入排序的时间复杂度为o(n2 )。 直接插入排序是一种稳定的排序方法。 2 )对半插入排序,好处:比较次数大幅减少。 时间效率:比较次数大幅减少,但遗憾的是移动次数没有减少,所以排序效率仍为O
8、(n2)。 空间效率: O(1)稳定性:支持稳定性的程序参考教材P267 (仅限顺序表),按顺序喀呖声新元素,在形成的有序表中折叠一半进行搜索,插入合适的位置,然后将原始位置的元素向后移动。 必须更换voidbinsertsort (sqlist jai1)/t=ai。 ai=ai 1; ai 1=t; 冒泡排序的算法分析,时间效率: O(n2 )考虑最坏的情况空间效率: O(1)交换时使用一个缓冲区用户针织面料的稳定性:稳定25和25*排序前后的排序不变,详细分析:最好的情况:初始排序有秩序, 仅执行一次冒泡的最坏情况:初始排列是相反顺序,算法执行n-1回合的冒泡,第I回合(1 i n )进
9、行n- i次牛鼻子查询密码比较,执行n- i次对象交换。 此时的比较总次数KCN和记录查询密码移动次数RMN,(2)快速排序,以排序后的列中的任意一个要素(例如取第1个)为中心,比其小的要素全部一律放在前面,比其大的要素全部一律放在后面,形成左右2个子表,然后这就是有序的序列。 基本思想:优点:由于每一回合可以定位多个元素,并且这些元素呈指数增长,特别是快速前提:顺序存储结构,(),以第一个元素为枢轴中心的示例1 :牛鼻子字序列t=(21,25,49,25 *,16,08 ),编写快速排序的算法步骤。21、25、49、25*、16、08、初始状态:第一次:第二次:第三次:讨论:1.这种持续分割子表的过程,修正机是如何自动实现的? 2 .“快速排序”真的比任何排序算法快吗?08、16、21、25 *、25、(49 )、21、08、16、()、25 *、49、25、(08 )、16、计程仪编程时:每1匝的子表的形成是从两端向中间采用交替式近似法的各匝的各子表的操作相似,因此,梅、教材P275,以in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代购服装合同样本
- dq兼职合同标准文本
- bot项目建设合同标准文本
- 股权众筹协议合同范例二零二五年
- 二零二五版无偿车辆使用合同
- 房产赠与合同范例
- 二零二五版股份转让及代持股权协议书
- 纳税担保合同
- 担保合同的担保方式与范围
- 2024年1月份零碳建筑能效指标履约责任书
- 国内外化工发展情况及安全形势
- 读书分享读书交流会《四世同堂》
- 2024年人教精通版四年级下册英语期末专项复习-阅读理解
- 中医推拿基础培训课件
- 防电信诈骗安全教案
- 产品履历表完
- 保健食品备案产品可用辅料及其使用规定
- 肺癌伴胸腔积液护理查房
- 健康管理中的健康教育与健康促进研究
- 2024年中考化学复习把握中考方向共研备考策略
- 新闻宣传“三审三校”审查表
评论
0/150
提交评论