- 6
- 0
- 约5.06千字
- 约 36页
- 2017-09-09 发布于湖北
- 举报
10.5 归并排序 基本思想 将两个或两个以上的有序子序列“归并”为一个有序序列。 在内部排序中,通常采用的是2-路归并排序。即:将两个位置相邻的有序子序列归并为一个有序序列。 10.5 归并排序 如何进行两路归并? 将两个有序表的元素进行比较,小者复制到目标表中。 10.5 归并排序 10.5 归并排序 原理 假设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1。然后两两归并,得到?n/2?个长度为2或1的有序子序列;再两两归并,……如此重复,直至得到一个长度为n的有序序列为止。 10.5 归并排序 10.5 归并排序 性能分析 一趟归并操作是将r[1]~r[n]中相邻的长度为h的有序序列进行两两归并,这需要O(n)时间。整个归并排序需要进行log2n趟,因此,总的时间代价是O(nlog2n)。 10.5 归并排序 性能分析 算法在执行时,需要占用与原始记录序列同样数量的存储空间,因此空间复杂度为O(n)。 10.5 归并排序 总结 最好、最坏、平均时间复杂度均为O(nlogn); 空间复杂度高,为O(n); 是高效算法中唯一“稳定”的排序方法; 较少用于内部排序,多用于外部排序。 10.6 基数排序 基本思想 10.6 基数排序 多关键码排序问题 10.6 基数排序 “花色”优先 先分成4堆; 然后,每堆再按“面值”排; 最后,收成一堆。 10.6 基数排序 “面值”优先 先分成13堆; 每堆再按“花色”排; 10.6 基数排序 多关键码排序 10.6 基数排序 多关键码排序 实现多关键码排序通常有两种方法: 低位码优先LSD 高位码优先MSD 10.6.2 链式基数排序 对于单关键字,可以看成是由多个数位构成的多关键字; 基数排序是典型的LSD排序方法,利用“分配”和“收集”两种运算对单关键码进行排序。 10.6.2 链式基数排序 基本思想 从关键字的最“低位”开始,将关键字分配到r(基数)个堆(桶)中; 按桶的编号将关键字收集起来; 然后,以“次低位”将关键字又分配到r个桶中;再收集,……,重复直到“最高位”为止,这时,以按关键字有序。 10.6.2 链式基数排序 实现思想 为了便于分配与收集,采用链表为存储结构 r个桶用r个链式队列表示; 收集的时候直接将队列的头尾指针连接实现; 10.6.2 链式基数排序 10.6.2 链式基数排序 10.6.2 链式基数排序 10.6.2 链式基数排序 性能分析 若每个关键码有d 位,需要重复执行d 趟“分配”与“收集”。而每趟对n 个对象进行“分配”,对r 个队列进行“收集”。总时间复杂度为O(d (n+r))。 若基数r相同,对于数据个数较多而关键码位数较少的情况,使用链式基数排序较好。 需要增加 n+2r个附加链接指针。 稳定的排序方法 10.6 内部排序方法的比较讨论 对排序算法应该从以下几个方面综合考虑: ⑴时间复杂性; ⑵空间复杂性; ⑶稳定性; ⑷算法简单性; ⑸待排序记录个数n的大小; ⑹记录本身信息量的大小; ⑺关键码的分布情况 10.6 内部排序方法的比较讨论 简单性 一类是简单算法,包括直接插入排序、直接选择排序和冒泡排序, 另一类是改进后的算法,包括希尔排序、堆排序、快速排序和归并排序,这些算法较复杂 10.6 内部排序方法的比较讨论 待排序记录个数比较 n越小,采用简单排序方法越合适。 n越大,采用改进的排序方法越合适。 因为n越小,O(n2)同O(nlog2n)的差距越小,并且输入和调试简单算法比 高效算法要容易 10.6 内部排序方法的比较讨论 数据的信息量比较 信息量越大,移动记录所花费的时间就越多,所以对记录的移动次数较多的算法不利。 10.6 内部排序方法的比较讨论 数据的分布情况比较 当待排序数据初始有序时,插入排序和冒泡排序能达到O(n)的时间复杂度; 对于快速排序而言,这是最坏的情况,此时性能蜕化为O(n2); 选择排序、堆排序和归并排序的性能不受影响。 结束,谢谢! 稳定 归并排序 不稳定 堆排序 稳定 简单选择排序 不稳定 快速排序 稳定 冒泡排序 不稳定 希尔排序 稳定 直接插入排序 辅助空间 排序方法 算法稳定性 排序方法 最好情况 最坏情况 平均情况 直接插入排序 O(n) O(n2) O(n2) 冒泡排序 0 O(n2) O(n2) 直接选择排序 0 O(n) O(n) * * r[i] r
您可能关注的文档
- 建设部建筑施工图设计文件审查要点.pdf
- 建设项目审计2章.ppt
- 弗兰克-赫兹.doc
- 弗兰克-赫兹实验.doc
- 弗兰克-赫兹(Franck-Hertz)实验.pdf
- 弗兰克—赫兹实验模板.doc
- 弗兰克-赫兹报告.docx
- 弗兰克赫兹实验报告.docx
- 弗兰克赫兹实验.doc
- 弗兰克5.12.ppt
- 2026及未来5年中国蓝牙耳机市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国聚酯有端网市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国画市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国脂压泰胶囊市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国弯型钢化玻璃市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国家用电器整机组装线市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国CNC数控系统市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国家用电器微电机市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国耐酸合金直角截止阀市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026及未来5年中国餐厅宾馆家具市场现状分析(数据调查、监测)及前景探究报告.docx
原创力文档

文档评论(0)