




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 排序 排序定义将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫排序。 排序分类 按待排序记录所在位置 内排序:待排序记录存放在内存 外排序:排序过程中需对外存进行访问的排序 按排序依据原则 插入排序:直接插入排序、二分法插入排序、希尔排序 选择排序:直接选择排序、堆排序 交换排序:冒泡排序、快速排序 归并排序:2-路归并排序 分配排序:基数排序第1页/共38页 排序基本操作 比较两个关键字大小 将记录从一个位置移动到另一个位置 稳定排序与非稳定排序 评价排序算法代价的标准 执行算法所需的时间;比较次数、移动次数 执行算法所需要的附加空间; 算法本身的复杂程度 在待
2、排序的文件中,如果存在多个排序码相同的记录,经过排序后,相同排序码记录的相对次序如果保持不变,则称这种排序方法是稳定的,否则是不稳定的。第2页/共38页 8.2 插入排序 直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序第3页/共38页例49 38 65 97 76 13 27 49i=1 38 (38 49) 65 97 76 13 27 49i=2 65 (38 49 65) 97 76 13 27 49i=3 97 (38 49 65 97) 76 13 27 49i=4 76 (38 4
3、9 65 76 97) 13 27 49i=5 13 (13 38 49 65 76 97) 27 49 ( )i=6 (13 38 49 65 76 97) 27 4927jjjjjj97)7665493827 (13 27 38 49 65 76 97)排序结果:i=7 49 (13 38 49 49 65 76 97) 27 第4页/共38页42n42nT(n)=O(n)第5页/共38页 二分法插入排序 排序过程:用折半查找方法确定插入位置例i=1 (30) 13 70 85 39 42 6 20i=2 13 (13 30) 70 85 39 42 6 20i=7 6 (6 13 30
4、39 42 70 85 ) 20.i=8 20 (6 13 30 39 42 70 85 ) 20sjmi=8 20 (6 13 30 39 42 70 85 ) 20sjmi=8 20 (6 13 30 39 42 70 85 ) 20sjmi=8 20 (6 13 30 39 42 70 85 ) 20sji=8 20 (6 13 20 30 39 42 70 85 )第6页/共38页 算法描述 程序实现 第7页/共38页 希尔排序(缩小增量法) 排序过程:先取一个正整数d1n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2r2.key,则交换;然后比较第二个记录与第三个记录
5、;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上 对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置 重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止第23页/共38页例49 38 65 97 76 13 27 30 初始关键字38 49 65 76 13 27 30 97 第一趟38 49 65 13 27 30 76 第二趟38 49 13 27 30 65 第三趟38 13 27 30 49 第四趟13 27 30 38 第五趟13 27 30 第六趟3849769713972
6、7973097137676762730136527653065131349493049273827383038第24页/共38页 算法描述T(n)=O(n)第25页/共38页 快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序 排序过程:对rst中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=rs,x=rp.key 初始时令i=s,j=t 首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换
7、 重复上述两步,直至i=j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止第26页/共38页例初始关键字: 49 38 65 97 76 13 27 50 ijxji 完成一趟排序: ( 27 38 13) 49 (76 97 65 50) 分别进行快速排序: ( 13) 27 (38) 49 (50 65) 76 (97) 快速排序结束: 13 27 38 49 50 65 76 974927ijijij4965ji1349ij4997ij第27页/共38页 算法描述T(n)=O(n)第28页/共38页 8.5 基数排序 多关键字排序 定义:例 对52张扑克牌按以下次序
8、排序: 2 3 A 2 3 A 2 3 A 2 3 A两个关键字:花色( ) 面值(23A)并且“花色”地位高于“面值”第29页/共38页 最低位优先法(LSD):从最低位关键字kd起进行排序,然后再对高一位的关键字排序,依次重复,直至对最高位关键字k1排序后,便成为一个有序序列 MSD与LSD不同特点 按MSD排序,必须将序列逐层分割成若干子序列,然后对各子序列分别排序 按LSD排序,不必分成子序列,对每个关键字都是整个序列参加排序;并且可不通过关键字比较,而通过若干次分配与收集实现排序 链式基数排序 基数排序:借助“分配”和“收集”对单逻辑关键字进行排序的一种方法 链式基数排序:用链表作存
9、储结构的基数排序第30页/共38页 链式基数排序步骤 设置10个队列,fi和ei分别为第i个队列的头指针和尾指针 第一趟分配对最低位关键字(个位)进行,改变记录的指针值,将链表中记录分配至10个链队列中,每个队列记录的关键字的个位相同 第一趟收集是改变所有非空队列的队尾记录的指针域,令其指向下一个非空队列的队头记录,重新将10个队列链成一个链表 重复上述两步,进行第二趟、第三趟分配和收集,分别对十位、百位进行,最后得到一个有序序列第31页/共38页例初始状态:278109063930589184505269008083109589269278063930083184505008e0e1e2e3
10、e4e5e6e7e8e9f0f1f2f3f4f5f6f7f8f9一趟分配930063083184505278008109589269一趟收集:第32页/共38页505008109930063269278083184589二趟收集:083184589063505269930e0e1e2e3e4e5e6e7e8e9f0f1f2f3f4f5f6f7f8f9二趟分配008109278930063083184505278008109589269一趟收集:第33页/共38页008063083109184269278505589930三趟收集:109008184930e0e1e2e3e4e5e6e7e8e9f0f1f2f3f4f5f6f7f8f9三趟分配063083269278505589505008109930063269278083184589二趟收集:第34页/共38页第35页/共38页 8.6 归并排序 归并将两个或两个以上的有序表组合成一个新的有序表,叫归并 2-路归并排序 排序过程 设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1 两两合并,得到 n/2 个长度为2或1的有序子序列 再两两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北国土资源职业学院《汽车电器》2023-2024学年第二学期期末试卷
- 吉林艺术学院《安全化工基础》2023-2024学年第二学期期末试卷
- 喀什理工职业技术学院《虚拟化技术与应用》2023-2024学年第二学期期末试卷
- 北京中医药大学东方学院《DSP技术及应用》2023-2024学年第二学期期末试卷
- 中央民族大学《国际会展实务》2023-2024学年第二学期期末试卷
- 福建林业职业技术学院《商务英语阅读Ⅱ》2023-2024学年第二学期期末试卷
- 河北工业职业技术大学《电子线路设计》2023-2024学年第二学期期末试卷
- 湖南机电职业技术学院《中外建筑园林史》2023-2024学年第二学期期末试卷
- 江苏大学《分离科学》2023-2024学年第二学期期末试卷
- 上饶卫生健康职业学院《管理会计案例》2023-2024学年第二学期期末试卷
- 黄岩区区级以下河道管理范围
- 医疗机构麻精药品管理要点-课件
- DB32∕T 3921-2020 居住建筑浮筑楼板保温隔声工程技术规程
- 适老化居家环境设计与改造-项目三-适老化居家环境课件(PPT 37页)
- 最新幼儿园小朋友认识医生和护士PPT课件
- 安全现场文明施工措施费用清单
- 《苏东坡传》精美(课堂PPT)
- 国标法兰尺寸对照表
- 强制执行申请书-(工资强制执行)
- 华电 电厂招聘化学试题
- 上海市住宅修缮施工资料及表式(共251页)
评论
0/150
提交评论