




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/45,第十章 排序,2/45,实验与课程安排,3/45,实验:第三次实验,13周周五(19 Nov)下午14:0016:00,2#机房第四次实验,14周周三(24 Nov)下午16:0018:00,1#机房本周五停课一次,下周三最后一次课期末考试时间: 15周周五(3 Dec)14:0016:00?答疑一次,具体时间?,4/45,10.1 概述,设R1 R2 R3 Rn 是n个记录,k1,k2, k3 kn为它们的关键字,排序就是将记录按关键字递增(或递减)的次序排列起来。,5/45,排序的分类,按记录的存放位置分类有 内部排序:待排记录存放在RAM中进行排序的过程 外部排序:待排记录数量很大,内存容纳不下,排序过程中尚需访问外存的排序过程按排序原则分类(内部排序) 插入排序 交换排序 选择排序 归并排序 基数排序,6/45,稳定性,在待排记录序列中,任何两个关键字相同的记录,用某种排序方法排序后相对位置不变,则称这种排序方法是稳定的,否则称为不稳定的。,待排序列: 49,38,65,97,76,13,27,49 排序后: 13,27,38,49,49,65,76,97 稳定排序后: 13,27,38,49,49,65,76,97不稳定,7/45,待排记录的存储顺序关键字类型定义 typedef int KeyType; 记录类型定义 typedef struct KeyType key; /关键字域 /其它域 RedType;,待排记录的存储,8/45,顺序表类型定义 typedef struct RedType rMAXSIZE+1; int length; SqList,9/45,10.2 插入排序,基本思想 依次将待排记录插入到已排好序的有序子表中,并使插入后的子表仍保持有序,直到全部记录插入完毕;初始时,有序子表中只有一个元素。,例 49 38 65 97 76 13 27 49 55 04,10/45,直接插入排序,例: 49 38 65 97 76 13 27 49 (49)38 65 97 76 13 27 49 (38 49)65 97 76 13 27 49 (38 49 65)97 76 13 27 49 (38 49 65 97) 76 13 27 49 (38 49 65 76 97)13 27 49 (13 38 49 65 76 97)27 49 (13 27 38 49 65 76 97)49 (13 27 38 49 49 65 76 97),11/45,void InsertSort(SqList /插入正确位置 /InsertSort,12/45,如果 R1.i-1 是一个按关键字有序的有序序列,则可以利用折半查找实现“在R1.i-1中查找Ri的插入位置”,如此实现的插入排序过程为折半插入排序。,二、折半插入排序,13/45,void BiInsertionSort ( SqList &L ) / BInsertSort,/在 L.r1.i-1中折半查找插入位置;,for ( i=2; i=high+1; -j ) L.rj+1 = L.rj; / 记录后移,L.rhigh+1 = L.r0; / 插入,14/45,low = 1; high = i-1;while (low=high) ,m = (low+high)/2; / 折半,if (L.r0.key L.rm.key) high = m-1; / 插入点在低半区else low = m+1; / 插入点在高半区,/在 L.r1.i-1中折半查找插入位置;,15/45,14 36 49 52 80,58 61 23 97 75,i,low,high,m,m,low,low,m,high,14 36 49 52 58 61 80,23 97 75,i,low,high,m,high,m,high,m,low,例如:,再如:,插入位置,插入位置,L.r,L.r,16/45,10.3 交换排序,基本思想: 将待排记录中两两记录关键字进行比较,若逆序则交换位置(借助交换)。 例:49 38 65 97 76 13 27 49,起泡排序 49 38 65 97 76 13 27 49 38 49 65 76 13 27 49 97 一趟起泡排序后“最大数”沉底,17/45,快速排序,选定一记录R,将所有其他记录关键字k与该记录关键字k比较, 若 kk 则将记录换至R之后; 继续对R前后两部分记录进行快速排序,直至排序范围为1;,例 49 38 65 97 76 13 27 49 55 04,18/45,49 38 65 97 76 13 27 49,49,一趟快速排序,(2749),(9749),(1349),(i=j),19/45,int Partition(SqList /返回枢轴位置/Partition,20/45,27 38 13 49 76 97 65 49 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97,两趟快速排序结束,三趟快速排序结束,快速排序,21/45,void Qsort(SqList ,void QuickSort(SqList ,22/45,10.4 选择排序,基本思想在待排记录中依次选择关键字最小的记录,放在最前面;再在剩余的记录中选择最小的记录排在次前面;.; 逐渐缩小范围直至全部记录选择完毕。,例 49 38 65 97 76 13 27 49,23/45,一、简单选择排序,49 38 65 97 76 13 27 49 1338 65 97 76 49 27 49 13 2765 97 76 49 38 49 13 27 3865 97 76 49 49 13 27 38 4965 97 76 49 13 27 38 49 4965 97 76 13 27 38 49 49 6597 76 13 27 38 49 49 65 76 97,24/45,void SelectSort(SqList /SelectSort,49 38 65 97 76 13 27 49,13 38 65 97 76 49 27 49,25/45,二、堆排序,一颗完全二叉树,如果满足下面的条件,则称其为堆:根结点关键字左、右孩子结点的关键字;左、右子树也是堆称为堆;,大根堆,不是堆,26/45,小根堆,不是堆,27/45,堆的另一定义 对于一个关键码序列K1,K2,Kn,如果满足KiK2i, KiK2i+1, (i=0,1, ,n/2-1 ),则称其为堆(大根堆)。,28/45,筛选操作(FilterDown),29/45,筛选操作(FilterDown),30/45,筛选操作(FilterDown),31/45,筛选操作(FilterDown),32/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,33/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,34/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,35/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,36/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,37/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,38/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,39/45,建堆,从堆的最后一个分支结点(第n/2个元素) ,自底向上逐步筛选把调整为堆,40/45,建堆,从堆的最后一个分支结点(第n/2个元素),自底向上逐步筛选把调整为堆,41/45,堆排序,建堆循环,直到堆为空: 将堆顶元素与堆最后的元素互换;将其余的元素筛选成堆;,42/45,建堆,43/45
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建三明市公路事业发展中心下属国有企业人员招聘1人笔试历年参考题库附带答案详解
- 2025牧原集团西北区域招聘2133人笔试历年参考题库附带答案详解
- 2025安徽华荣远诚人力资源服务集团有限公司派驻寿县楚晨城运公司保安经理及保安队长招聘及候选人笔试历年参考题库附带答案详解
- 2025四川巴中市恩阳区城乡建设投资集团有限公司子公司招聘7人笔试历年参考题库附带答案详解
- 2025内蒙古呼和浩特运营维管段招聘笔试历年参考题库附带答案详解
- 2025年延安通和电业有限责任公司招聘(5人)模拟试卷及参考答案详解一套
- 2025内蒙古首批事业单位“1+N”招聘2502名工作人员考前自测高频考点模拟试题附答案详解
- 2025广西农业科学院甘蔗研究所甘蔗生物固氮团队公开招聘1人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025吉林省矿业集团有限责任公司遴选31人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025吉林省地震局第二批次事业单位开招聘1人模拟试卷附答案详解(典型题)
- 全网营销培训课件下载
- 农村财务报账员培训课件
- (2025秋新版)外研版八年级英语上册全册教案
- GB/T 45870.1-2025弹簧测量和试验参数第1部分:冷成形圆柱螺旋压缩弹簧
- 数据备份课件
- 银行集团管理办法
- 人行国内证管理办法
- 电厂钢结构安装方案(3篇)
- 部编版六年级下册语文小升初《词语积累与运用》专项检测卷 含答案
- 残运会应急预案管理办法
- T/SFABA 2-2016食品安全团体标准食品配料焙烤食品预拌粉
评论
0/150
提交评论