- 2
- 0
- 约 55页
- 2017-06-07 发布于湖北
- 举报
本章主要内容 本章主要内容,本章详细介绍了排序的基本概念和常见的排序方法,包括常用的内部排序方法,外部排序方法等内容。通过本章的学习,应掌握如下内容: l???????? 插入排序 l??????? ? 交换排序 l??????? ? 选择排序 l??????? ? 归并排序 l??????? ? 基数排序 l????????? 外部排序 l 各种排序的比较 算法分析:时间复杂度:在n个记录的待排序列中,一次划分需要约n次关键码比较。若每次划分的前后两部分数据元素个数基本相等,则需要经过log2n次划分,所以算法时间复杂度为nlog2n,最坏情况下,时间复杂度为O(n2)。空间复杂度:快速排序是递归的,每层递归调用的指针和参数均要用栈来存放,递归调用次数与二叉树的深度一致。存储开销在理想情况下为O(log2n),即树的高度;在最坏情况下,二叉树是一个单支,这时算法的空间复杂度为为O(n)。 53 36 85 47 91 输出30,将91送入堆顶,调整恢复堆 53 47 85 91 36 输出24,将53送入堆顶,调整恢复堆 36 30 85 47 91 53 53 36 85 47 30 91 85 91 输出53, 将91送入堆顶 91 85 53 47 85 91 输出36,将91送入堆顶,调整恢复堆 53 85 91 47 53 85 91 输出47,将91送入堆顶, 调整恢复堆 91 85 53 归并的含义是将两个或两个以上的有序序列归并成一个新的有序表。归并排序可分为多路归并排序和两路归并排序。它既可以用于内部排序,也可以用于外部排序。 一趟两路归并算法的思想(以升序为例):先用两个指针分别指向两个序列的第一个数据元素,进行比较,取出较小者,然后将其所在序列的指针后移,重复以上过程,直到指针达到序列的末尾,这时将另一个序列的剩余元素依次顺序放到有序序列的后面即可。 10.5 归并排序 将两个有序序列L-data[t..m]和L-data[m+1..n]归并为有序序列L1-[t..n]的过程: ⑴ i=t;j=m;k=t; ⑵ 若im 或 jn,执行⑸; ⑶ 比较L-data[i]和L-data[j]关键字,将较小的存入L1中: 如果L-data[i].keyL-data[j].key; L1-data[k]=L-data[i];i++; k++;执行⑵; 否则,L1-data[k]=L-data[j];j++;k++;执行⑵; ⑷ 将尚未处理完的子表中元素存入L1; 如果i=m,将L-data[i…m]存入L1-data[k…n]; 如果j=n,将L-[j…n]存入L1-data[k…n]; ⑸ 合并结束。 【算法9.7】 一趟两路归并排序 void Merge(SL *L,SL *L1,int t,int m,int n) { for(i=t,j=m,k=t;i=m j=n;k++) { if(L-data[i].keyL-data[j].key) { L1-data[k]=L-data[i];i++;} else {L1-data[k]=L-data[j];j++;} } /* for */ if(i=m) L1-data[k…n]=L1-data[i…m-1]; if(j=n) L1-data[k…n]=L1-data[j…n]; } /*Merge*/ 【例10-7】有一个序列12,9,44,10,99,61,65,43,76,其两路归并算法的过程: 初始关键字 [12] [9] [44] [10] [99] [61] [65] [43] [76] 一趟归并后 [9 12] [10 44] [61 99] [43 65] [76] 二趟归并后 [9 10 12 44] [43 61 65 99] [76] 三趟归并后 [9 10 12 43 44 61 65 99] [76] 四趟归并后 [9 10 12 43 44 61 65 76 99 ] 两路归并排序思想:把序列所含的n个记录看作n个有序的子序列,然后两两归并,得[n/2]个长度为2或1的有序子序列;再两两归并,以此类推直到得到的子序列长度为n,排序完毕。 算法分析: 空间复杂度为O(n)。 时间复杂度:对包含n个数据元素的表,将这n个数据元素看作叶子结点,若将两两归
您可能关注的文档
- 数据库基本概念要领.doc
- SF6密度继电器校验仪功能说明与主菜单仪器操作方法.doc
- 数据库基本概念与字段类型详解.pptx
- SIP的安全机制与其HTTP摘要认证的改进.pdf
- sip消息类型及消息代码详解.pdf
- 数据库基本资料要领.ppt
- Socket服务器和客户端双向通信实例.doc
- 数据库基础复习题要领.doc
- 数据库基础知识个人整理版 强烈推荐要领.doc
- Solidworks2010安装与破解方法.docx
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)