清华 殷人昆C++数据结构课件数据结构第9章.doc

清华 殷人昆C++数据结构课件数据结构第9章.doc

ID:51930432

大小:814.00 KB

页数:30页

时间:2020-03-19

清华 殷人昆C++数据结构课件数据结构第9章.doc_第1页
清华 殷人昆C++数据结构课件数据结构第9章.doc_第2页
清华 殷人昆C++数据结构课件数据结构第9章.doc_第3页
清华 殷人昆C++数据结构课件数据结构第9章.doc_第4页
清华 殷人昆C++数据结构课件数据结构第9章.doc_第5页
资源描述:

《清华 殷人昆C++数据结构课件数据结构第9章.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第9章排序一、复习要点排序是使用最频繁的一类算法。排序分内排序与外排序。内排序算法主要分5大类,有12个算法。在插入排序类中讨论了直接插入排序、二分法插入排序、表插入排序和shell排序算法;在交换排序类中讨论了起泡排序和快速排序算法;在选择排序类中讨论了简单选择排序、锦标赛排序和堆排序算法;在归并排序类中讨论了迭代的两路归并排序和递归的表归并排序算法;在多排序码排序类中讨论了最低位优先的链表基数排序算法。其中,不稳定的排序方法有shell排序、简单选择排序、快速排序和堆排序;适合于待排序对象数目n比较大的排序方法有快速排序、堆排序、归并排序和基数排序;排序

2、码比较次数不受对象排序码初始排列影响的排序方法有折半插入排序、简单选择排序、锦标赛排序、两路归并排序和基数排序,其中,当排序码的初始排列接近有序时,直接插入排序和起泡排序等增长很快,而快速排序则变成慢速排序。外排序是基于外存的排序方法。由于外存以顺序存取的效率最高,以归并排序最为适合。因此,外排序以k路平衡归并为主。在k个对象排序码中选取最小排序码,采用了败者树。这是一种高效的选择算法。此外,还讨论了初始归并段生成的方法,最佳归并树等问题。本章复习的要点是:1、基本知识点要求理解排序的基本概念,包括什么是排序,排序的稳定性,排序的性能分析,如时间代价(对象排

3、序码的比较次数和对象的移动次数)和空间代价(附加对象个数)。掌握插入排序(直接插入排序;折半插入排序;链表插入排序)、交换排序(起泡排序;快速排序)、选择排序(直接选择排序;链表选择排序;锦标赛排序;堆排序)、迭代的归并排序等内排序的方法及其性能分析方法。理解基数排序方法及其性能分析方法。理解多路平衡归并等外排序方法及败者树构造方法。理解生成初始归并段及败者树构造方法。理解最佳归并树的建立方法。2、算法设计Ø插入排序:直接插入排序算法、折半插入排序算法、链表插入排序算法Ø交换排序:起泡排序算法,快速排序的递归算法和用栈实现的非递归算法Ø选择排序:直接选择排序

4、算法,链表选择排序算法,堆排序算法Ø归并排序:两路归并算法,迭代的归并排序算法;递归的链表归并排序算法和用队列实现的非递归链表归并排序算法Ø其它排序算法:计数排序算法,奇偶排序算法二、难点和重点1、基本概念:排序码、初始排序码排列、排序码比较次数、数据移动次数、稳定性、附加存储、内部排序、外部排序2、插入排序Ø当待排序的排序码序列已经基本有序时,用直接插入排序最快3、选择排序Ø用直接选择排序在一个待排序区间中选出最小的数据时,与区间第一个数据对调,而不是顺次后移。这导致方法不稳定。Ø当在n个数据(n很大)中选出最小的5~8个数据时,锦标赛排序最快Ø锦标赛排序

5、的算法中将待排序的数据个数n补足到2的k次幂2k-1

6、Ø最佳归并树的构造及WPL的计算三、教材中习题的解析9-1什么是内排序?什么是外排序?什么排序方法是稳定的?什么排序方法是不稳定的?【解答】内排序是排序过程中参与排序的数据全部在内存中所做的排序,排序过程中无需进行内外存数据传送,决定排序方法时间性能的主要是数据排序码的比较次数和数据对象的移动次数。外排序是在排序的过程中参与排序的数据太多,在内存中容纳不下,因此在排序过程中需要不断进行内外存的信息传送的排序。决定外排序时间性能的主要是读写磁盘次数和在内存中总的记录对象的归并次数。不稳定的排序方法主要有希尔排序、直接选择排序、堆排序、快速排序。不稳定的排序方法

7、往往是按一定的间隔移动或交换记录对象的位置,从而可能导致具有相等排序码的不同对象的前后相对位置在排序前后颠倒过来。其他排序方法中如果有数据交换,只是在相邻的数据对象间比较排序码,如果发生逆序(与最终排序的顺序相反的次序)才交换,因此具有相等排序码的不同对象的前后相对位置在排序前后不会颠倒,是稳定的排序方法。但如果把算法中判断逆序的比较“>(或<)”改写成“≥(或≤)”,也可能造成不稳定。9-2设待排序的排序码序列为{12,2,16,30,28,10,16*,20,6,18},试分别写出使用以下排序方法每趟排序后的结果。并说明做了多少次排序码比较。(1)直接插

8、入排序(2)希尔排序(增量为5,2,1)(3)起泡排

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。