数据结构-排序算法

数据结构-排序算法

ID:41689966

大小:800.09 KB

页数:31页

时间:2019-08-30

数据结构-排序算法_第1页
数据结构-排序算法_第2页
数据结构-排序算法_第3页
数据结构-排序算法_第4页
数据结构-排序算法_第5页
资源描述:

《数据结构-排序算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

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

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

4、的非递归链表归并排序算法>其它排序算法:计数排序算法,奇偶排序算法二.难点和重点1、基本概念:排序码、初始排序码排列、排序码比较次数、数据移动次数、稳定性、附加存储、内部排序、外部排序2、插入排序>当待排序的排序码序列已经棊木冇序时,川直接插入排序最快3、选择排序>用直接选择排序在一个待排序区间中选出最小的数据时,与区间第一个数据对调,而不是顺次后移。这导致方法不稳定。>当在n个数据(n很大)屮选出最小的5~8个数据时,锦标赛排序最快>锦标赛排序的算法中将待排序的数据个数n补足到2的k次幕2“在堆排序中将待排序的数据组织成完全二叉树的顺序存储。4、交换排序>快速排序是一个递归的排

5、序方法>当待排序排序码序列已经基木有序时,快速排序显著变慢。5、二路归并排序>归并排序可以递归执行>归并排序需耍较多的附加存储。可以采用一种“推拉法”实现归并排序,算法的时间复杂度为O(n)、空间复杂度为0(1)>归并排序对待排序排序码的初始排列不敏感,排序速度较稳定6、外排序>多路平衡归并排序的过程、I/O缓冲区个数的配置>外排序的时间分析、利用败者树进行多路平衡归并>利用置换选择方法生成不等长的初始归并段>最佳归并树的构造及WPL的计算二.教材中习题的解析9-1什么是内排序?什么是外排序?什么排序方法是稳定的?什么排序方法是不稳定的?【解答】内排序是排序过程中参与排序的数据全部在内存中所

6、做的排序,排序过程中无需进行内外存数据传送,决定排序方法时间性能的主耍是数据排序码的比较次数和数据对象的移动次数。外排序是在排序的过程屮参与排序的数据太多,在内存中容纳不卜S因此在排序过程屮需要不断进行内外存的信息传送的排序。决定外排序时间性能的主要是读写磁盘次数和在内存屮总的记录对象的归并次数。不稳定的排序方法主要有希尔排序、直接选择排序、堆排序、快速排序。不稳定的排序方法往往是按一定的间隔移动或交换记录对彖的位置,从而町能导致具有相等排序码的不同对彖的前后相对位置在排序前后颠倒过来。其他排序方法中如果有数据交换,只是在相邻的数据对彖间比佼排序码,如果发生逆序(与最终排序的顺序相反的次序)

7、才交换,因此具有相等排序码的不同对象的前后相对位置在排序前后不会颠倒,是稳定的排序方法。但如果把算法屮判断逆序的比较“〉(或v)”改写成“2(或W)”,也可能造成不稳定。9-2设待排序的排序码序列为{12,2,16,30,2&10,16*,20,6,18},试分别写出使用以下排序方法每趟排序后的结果。并说明做了多少次排序码比鮫。⑵希尔排序(增量为5,2,1)(5)直接选择排序(8)二路归并排序⑶起泡排序(6)

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

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

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