第10章 内部排序(精选)数据结构
排序算法的好坏如何衡量? 例:关键字序列 T=(49,38,65,97,76,13,27,49*,55,04),请写出希尔排序的具体实现过程。 附:希尔排序算法分析 10.4 选择排序 一、简单选择排序 例:大顶堆排序示例: 堆排序算法分析: 一趟归并排序算法: (两路有序并为一路) 参见教材P283 递归形式的两路归并排序算法: 参见教材P284 (一路无序变为有序) 归并排序算法分析: 各种内部排序方法的比较 98 81 49 73 55 64 12 36 27 40 例如: 是大顶堆 12 但在 98 和 12 进行互换之后,它就不是堆了 因此,需要对它进行“筛选” 98 12 81 73 64 12 98 比较 比较 void HeapAdjust (RcdType R[], int s, int m) { // 已知 R[s..m]中记录的关键字除 R[s] 之外均 // 满足堆的特征,本函数自上而下调整 R[s] 的 // 关键字,使 R[s..m] 也成为一个大顶堆。 } // HeapAdjust rc = R[s]; // 暂存 R[s] for ( j=2*s; j=m; j*=2 ) { // j 初值指向左孩子 自上而下的筛选过程; } R[s] = rc; // 将调整前的堆顶记录插入到 s 位置 if ( rc.key = R[j].key ) break; // 再作“根”和“子树根”之间的比较, // 若“=”成立,则说明已找到 rc 的插 // 入位置 s ,不需要继续往下调整 R[s] = R[j]; s = j; // 否则记录上移,尚需继续往下调整 if ( jm R[j].keyR[j+1].key ) ++j; // 左/右“子树根”之间先进行相互比较 // 令 j 指示关键字较大记录的位置 建堆是一个从下往上进行“筛选”的过程。 40 55 49 73 81 64 36 12 27 98 例如: 排序之前的关键字序列为 12 36 81 73 49 98 81 73 55 现在,左/右子树都已经调整为堆,最后只要调整根结点,使整个二叉树是个“堆”即可。 98 49 40 64 36 12 27 08 25 21 25* 16 49 交换 1号与 6 号记录 49 25 25* 21 16 08 1 2 3 4 5 6 49 25 21 25* 16 08 初始大顶堆 25 25* 16 21 1 3 6 5 4 2 08 49 16 25* 21 08 25 49 交换 1号与 5 号记录 08 25 21 25* 16 49 从 1 号到 5 号 重新 调整为最大堆 08 25 25* 21 16 49 1 2 3 4 5 6 16 25* 08 25 21 49 1 3 6 5 4 2 08 25 25* 25 08 21 25* 16 49 08 25 25* 21 08 16 49 08 16 21 25* 25 49 交换 1 号与 4 号记录 25* 16 21 08 25 49 从 1号到 4号 重新 调整为最大堆 25* 16 08 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 08 16 21 25* 25 49 交换 1号与3 号记录 21 16 08 25* 25 49 从 1 号到 3号 重新 调整为最大堆 21 16 25* 08 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 08 16 21 25* 25 49 交换 1 号与2 号记录 16 08 21 25* 25 49 从 1 号到 2 号 重新 调整为最大堆 16 08 25* 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 时间效率: O(nlog2n)。因为整个排序过程中需要调用n-1次HeapAdjust( )算法,而算法本身耗时为log2n; 空间效率:O(1)。仅在第二个for循环中交换记录时用到一个临时变量temp。 稳定性: 不稳定。 优点:对小文件效果不明显,但对大文件有效。 10.5 归 并 排 序 归并排序的过程基于下列基本思想进行:
您可能关注的文档
- 第十章 服务人员和内部营销(定).ppt
- 材料力学-第七章 应力应变分析_强度理论.ppt
- 物理化学第七章 胶体.ppt
- 电机与拖动_第3章 _直流电机的电力拖动.ppt
- 第1-3章 法学与法理学.ppt
- 第05章 材料加工CADCAM系统开发通用技术.ppt
- 第01章 工程材料结构和性能20090923.ppt
- 第10章 光学材料.ppt
- 第13章 水泥混凝土路面设计(路基路面工程).ppt
- 第09章 2支撑压力与切线理论.ppt
- GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 中国国家标准 GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求.pdf
- 《GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求》.pdf
- 中国国家标准 GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 《GB/T 42818.2-2026认知无障碍 第2部分:报告》.pdf
- 《GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器》.pdf
- 中国国家标准 GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
- 中国国家标准 GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
最近下载
- 高等机构学01螺旋理论基础讲义.ppt
- 基于plc的清洗消毒机控制系统设计 .pdf VIP
- 发明专利说明书范例.pdf VIP
- 人教版英语中考九年级话题复习中国传统节日Chinesetraditionalfestivals教学设计.docx VIP
- 四年级道德与法治下册第一单元单元整体教学设计.pdf VIP
- 进修汇报医生课件课件.pptx VIP
- 03G102钢结构设计制图深度和表示方法(高清版) (OCR).pdf VIP
- 基于三菱PLC的自动洗碗机控制系统设计.doc VIP
- 下肢深静脉血栓形成介入治疗护理实践指南(2025)解读PPT课件.pptx VIP
- 南京新港东区建设发展有限公司南京龙潭新城花园路等13条道路及花园河等4条河道工程项目环评报告表(报批稿).pdf VIP
原创力文档

文档评论(0)