数据结构预算法第十章排序hard.pptx
《数据结构预算法第十章排序hard.pptx》由会员分享,可在线阅读,更多相关《数据结构预算法第十章排序hard.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、v10.1 概述概述v10.2 插入排序插入排序v10.3 快速排序快速排序v10.4 选择排序选择排序v10.5 归并排序归并排序v10.6 各种排序方法的比较各种排序方法的比较v典型例题典型例题第十章 排序 10.1 10.1 概述概述v1.1.排序就是排序就是将一组任意顺序的数据按一定的规律排列起来的过程。v2.2.排序过程中的两种基本操作排序过程中的两种基本操作(1)比较两个关键值的大小。(2)根据比较结果,移动记录的位置。v3.3.对关键字排序的对关键字排序的3 3个原则:个原则:v(1)关键字值为数值型,则按键值大小为依据。v(2)关键字值为ASCII码,则按键值的内码编排顺序为依
2、据。v(3)关键字值为汉字字符串类型,则大多以汉字拼音的字典次序为依据。4.4.排序方法的稳定和不稳定排序方法的稳定和不稳定v若对任意的数据元素序列,使用某个排序方法,对它按关键字进行排序,若对元先具有相同的键值元素间的位置关系,排序前和排序后保持一致,称此排序方法为稳定排序稳定排序,反之称为不稳定排序。5.5.待排序记录的待排序记录的3 3种存储方式种存储方式v(1)待排序记录存放在地址连续的一组存储单元上(线性表的顺序存储结构类似)。v(2)待排序记录放在静态链表中(记录之间的次序关系由指针指示,排序不需要移动记录)。v(3)待排序记录存放在地址连续的一组存储单元,同时另设一个指示各个记录
3、存储位置的地址向量,在排序过程中不移动记录本身,而移动地址向量中这些记录的“地址”,在排序结束后,再按照地址向量中的值调整记录的存储位置。6.6.内排序内排序:整个排序过程都在内存进行的排序为内排序。7.7.外排序:外排序:待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。10.2 10.2 插入排序插入排序10.2.1 10.2.1 直接插入排序直接插入排序 1.1.基本思想:基本思想:直接插入排序是将一个记录插入到已排序好的直接插入排序是将一个记录插入到已排序好的有序表中,从而得到一个新的,记录数增有序表中,从而得到一个新的,记录数增1 1
4、的有序表。的有序表。v 48 62 35 77 55 14 35 98 v 48 62 35 77 55 14 35 98v 35 48 62 77 55 14 35 98 v 35 48 62 77 55 14 35 98 v 35 48 55 62 77 14 35 98 v 14 35 48 55 62 77 35 98 v 14 35 35 48 55 62 77 98 v 14 35 35 48 55 62 77 98 v2.2.监视哨的作用:监视哨的作用:v(1 1)在进入确定插入位置的循环之前,保存了插入值)在进入确定插入位置的循环之前,保存了插入值riri的副本,避免因记录的移
5、动而丢失的副本,避免因记录的移动而丢失riri中的内容。中的内容。v(2 2)使内循环总能够结束,以免循环过程中数组下标越界。)使内循环总能够结束,以免循环过程中数组下标越界。v3.3.效率分析效率分析v直接插入排序是稳定排序,最适合待排序关键字基本有序的直接插入排序是稳定排序,最适合待排序关键字基本有序的序列。时间复杂度序列。时间复杂度O(),O(),辅助空间为辅助空间为O(1)O(1)。例例设待排序的表有设待排序的表有10个记录个记录,其关键字分别为其关键字分别为9,8,7,6,5,4,3,2,1,0。说明采用直接插入排序方法进行排。说明采用直接插入排序方法进行排序的过程。序的过程。v10
6、.2.2 二分插入排序highlowi插入位置5861 23 97 751436495280imm14364952586180 23 97 75high low插入位置imm14364952586180 23 97 75high low插入位置v1.1.基本思想:基本思想:v直接插入排序算法虽简单,但当记录数量大时,则比较次数将大大增加,对于有序表,为了减少关键字的比较次数,可采用二分插入排序。v2.2.效率分析效率分析v二分插入排序是稳定的排序。时间复杂度和空间复杂度和直接插入排序的一样。v10.2.3 10.2.3 希尔排序希尔排序v希尔排序又称希尔排序又称“缩小增量排序缩小增量排序”,它
7、也是一种插入排,它也是一种插入排序的方法,但时间上比前两种排序方法有比较大的改序的方法,但时间上比前两种排序方法有比较大的改进。进。v1.1.基本思想:基本思想:先将整个待排序记录序列分割成若干个子序列分别进行直接插入排序,待整个序列中的记录“基本有序时”,再对全体记录进行一次直接插入排序。v2.2.特点:特点:子序列不是简单的逐段分割,而是将相隔某个“增量”的记录组成一个子序列,所以关键字较小的记录不是一步一步地前移,而是跳跃式前移,从而使得在进行最后一趟增量为1的插入排序时,序列已基本有序。v3.3.效率分析:效率分析:v 希尔排序是一种不稳定排序。例如:例如:16 25 12 30 47
8、 11 23 36 9 18 31 第一趟希尔排序,设增量第一趟希尔排序,设增量 d=5d=511 23 12 9 18 16 25 36 30 47 31 第二趟希尔排序,设增量第二趟希尔排序,设增量 d=3d=39 18 12 11 23 16 25 31 30 47 36第三趟希尔排序,设增量第三趟希尔排序,设增量 d=1d=1 9 11 12 16 18 23 25 30 31 36 47 例例 设设 待待 排排 序序 的的 表表 有有 10个个 记记 录录,其其 关关 键键 字字 分分 别别 为为9,8,7,6,5,4,3,2,1,0。说说明明采采用用希希尔尔排排序序方方法法进进行行
9、排排序序的的过程。过程。10.3 10.3 快速排序快速排序v快速排序又称为交换排序,是根据记录的关键字的大小,通快速排序又称为交换排序,是根据记录的关键字的大小,通过记录交换来实现排序的。过记录交换来实现排序的。v10.3.1.10.3.1.冒泡排序冒泡排序v1.1.基本思想:基本思想:冒泡排序也称沉底法,每相邻两个记录关键字冒泡排序也称沉底法,每相邻两个记录关键字比较大小,大的记录往下沉(也可以小的往上浮)。每一遍比较大小,大的记录往下沉(也可以小的往上浮)。每一遍把最后一个下沉的位置记下,下一遍只需检查比较到此为止;把最后一个下沉的位置记下,下一遍只需检查比较到此为止;到所有记录都不发生
10、下沉时,整个过程结束(每交换一次,到所有记录都不发生下沉时,整个过程结束(每交换一次,记录减少一个反序数)。记录减少一个反序数)。v2.2.效率分析:效率分析:v冒泡排序是一种稳定排序。冒泡排序是一种稳定排序。例如:例如:例例设待排序的表有设待排序的表有10个记录个记录,其关键字分别为其关键字分别为9,8,7,6,5,4,3,2,1,0。说明采用冒泡排序方法进行排序的。说明采用冒泡排序方法进行排序的过程。过程。v10.3.2 10.3.2 快速排序快速排序v1.1.基本思想:基本思想:任取待排序序列中的某个元素作为基准,通任取待排序序列中的某个元素作为基准,通过一趟快速排序将待排序的元素分割成
11、左右两个子序列,过一趟快速排序将待排序的元素分割成左右两个子序列,其中左子序列元素的排序关键字均比基准(也称为枢轴)其中左子序列元素的排序关键字均比基准(也称为枢轴)元素的关键字值小;右子序列元素的关键字均比基准元素元素的关键字值小;右子序列元素的关键字均比基准元素的关键字值大,基准元素得到了它在整个序列中的最终位的关键字值大,基准元素得到了它在整个序列中的最终位置并被存放好,这个过程称为一趟快速排序。置并被存放好,这个过程称为一趟快速排序。v2.2.效率分析:效率分析:v快速排序是不稳定排序。快速排序是不稳定排序。例例 设设 待待 排排 序序 的的 表表 有有 10个个 记记 录录,其其 关
12、关 键键 字字 分分 别别 为为6,8,7,9,0,1,3,2,4,5。说说明明采采用用快快速速排排序序方方法法进进行行排排序序的的过程。过程。10.4 10.4 选择排序选择排序v选择排序选择排序是从待排序序列中选取一个关键字值最小的记录,是从待排序序列中选取一个关键字值最小的记录,把它与第一个记录交换存储位置,使之成为有序。然后在余把它与第一个记录交换存储位置,使之成为有序。然后在余下的无序的记录中,再选出关键字最小的记录与无序区中的下的无序的记录中,再选出关键字最小的记录与无序区中的第一个记录交换位置,又使之成为有序。依此类推,直至完第一个记录交换位置,又使之成为有序。依此类推,直至完成
13、整个排序。成整个排序。v10.4.1 10.4.1 简单选择排序简单选择排序v基本思想基本思想:v(1)(1)初始状态:整个数组r划分成两个部分,即有序区(初始为空)和无序区。v(2)(2)基本操作:从无序区中选择关键字值为最小的记录,将其与无序区的第一个记录交换位置(实质是添加到有序区尾部。)v(3)(3)从初态(有序区为空)开始,重复步骤(2),直到终态(无序区为空)。v效率分析:效率分析:v简单选择排序是不稳定排序。v 例例 如如例:例:设待排序的表有设待排序的表有10个记录个记录,其关键字分别为其关键字分别为6,8,7,9,0,1,3,2,4,5。说明采用直接选择排序方法进行排。说明采
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 预算法 第十 排序 hard
限制150内