查找与排序优秀课件.ppt

上传人:石*** 文档编号:91085822 上传时间:2023-05-21 格式:PPT 页数:27 大小:1.35MB
返回 下载 相关 举报
查找与排序优秀课件.ppt_第1页
第1页 / 共27页
查找与排序优秀课件.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《查找与排序优秀课件.ppt》由会员分享,可在线阅读,更多相关《查找与排序优秀课件.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、查找与排序1第1 页,本讲稿共27 页天津大学2/27本章内容(树形结构)查找排序第2 页,本讲稿共27 页天津大学3/271.查找第3 页,本讲稿共27 页天津大学4/27查找的基本概念 查找:在数据元素集合(查找表)中查找关键字与给定值相等的数据元素。关键字:数据元素中的一个或多个数据项值,它可以惟一标识一个数据元素。平均查找长度(ASL):式中,n为查找表的长度;pi为查找第i个元素的概率,在等概率情况下pi等于1/n;Ci为找到第i个元素时的比较次数第4 页,本讲稿共27 页天津大学 5/27顺序查找 基本思想:用给定值依次与线性表中每个元素的关键字进行比较。如果某个元素的关键字与给定

2、值相同,则查找成功;如果找遍全表也没有发现满足条件的元素,则查找失败。要求:查找表必须采用线性表。平均查找长度 评价:在用顺序查找方法完成查找时,每进行一次成功查找需要的平均比较次数约为表长度的一半,因此,它的效率较低。适用于在查找表较小的情况下进行查找。第5 页,本讲稿共27 页天津大学6/27二分查找要求:u查找表必须采用线性表;u必须以顺序方式存储线性表;u线性表中所有数据元素必须按照关键字有序排列 基本思想:将给定值与处于顺序表“中间位置”上的元素的关键字进行比较,若相等则查找成功,若给定值大于关键字则在表的后半部分继续进行二分查找,否则在表的前半部分继续进行二分查找。如此进行下去直至

3、找到满足条件的元素,或当前查找区为空,此时查找失败。第6 页,本讲稿共27 页天津大学7/27优点:u查找效率高u平均查找长度缺点:u查找前要将表中元素按关键字有序排列u只适用于线性表的顺序存储。适用于那种一经建立就很少改动而又经常需要查找的线性表。第7 页,本讲稿共27 页天津大学8/27分块查找要求:u查找表必须采用线性表;u待查找的线性表分成若干块。在每一块内,元素的存放是任意的,但在块与块之间元素的存放是有序的,即前一块中任意一个元素的关键字值都必须小于(或大于)后一块中所有元素的关键字值;u建立一个索引表,索引表中的每个索引项对应于一块。一个索引项至少应含有两部分信息:一是对应块中最

4、大的关键字值;二是指向对应块中第一个元素的指针第8 页,本讲稿共27 页天津大学 9/27 基本思想:首先在索引表中查找,确定出要查找的元素应该在哪一块中;然后在已确定的那一块内进行顺序查找。第9 页,本讲稿共27 页天津大学 10/27 优点:块内元素是任意存放的,插入或删除运算不会造成元素的大量移动。缺点:u增加了存放索引表的辅助空间及初始时对线性表分块排序的运算u大量的插入和删除运算可能会导致各块中元素的数目很不均匀,这会降低查找速度第10 页,本讲稿共27 页天津大学 11/27二叉排序树查找o 基本思想n 当二叉排序树不为空时,将给定值与根结点的值进行比较,若相等则查找成功。如果给定

5、值小于根结点的值,则在根结点的左子树中继续查找,否则在根结点的右子树中继续查找。当待查找的二叉排序树为空时,查找失败。o 平均查找长度n 在二叉排序树中查找成功时走过的是一条从根结点到所寻找结点的一条路径,因此,二叉排序树查找的平均查找长度取决于二叉排序树的深度。第1 1 页,本讲稿共27 页天津大学 12/27二叉排序树的蜕变o 二叉排序树是动态生成的,它的形态与各结点插入二叉排序树时的先后顺序有关。当把一组有序值依次插入到一棵二叉排序树时,生成的二叉排序树将蜕变成一棵单支树。例如,由整数序列15,23,26,47,56,89 生成的二叉排序树就是一棵单支树。在单支树中查找时,平均查找长度与

6、顺序查找相同。第12 页,本讲稿共27 页天津大学13/27哈希存储(哈希表)o 以数据元素的关键字k为自变量,通过一定的函数关系h(称为哈希函数或散列函数)计算出对应的函数值h(k),把这个值解释为数据元素的存储地址并把数据元素存储到相应的存储单元内。h(k)称为哈希地址。o 例:设有一组关键字值85,72,49,58,15,70,90,38,哈希函数h(k)=k mod 12。则对应的哈希地址为1,0,1,10,3,10,6,2第13 页,本讲稿共27 页天津大学14/27哈希存储冲突o 若有两个不同的关键字ki和kj,即ki kj(i j)。但h(ki)=h(kj),这种情况称为冲突。如

7、上例的关键字85和49,其对应的哈希地址都为1,即产生冲突。第14 页,本讲稿共27 页天津大学15/27常用哈希函数o 直接定位法n 取关键字的某个线性函数作为哈希函数,即h(k)=ak+b。其中,k为关键字,a、b为常数。o 数学分析法o 除留余数法n 选择一个适当的正整数p(p通常选为不大于哈希表长度 m 的最大素数),用p去除关键字,取其余数作为哈希地址,即h(k)=k%p(pm)。第15 页,本讲稿共27 页天津大学 16/27解决冲突的方法(1)o 开放地址法n 当冲突发生时形成一个地址序列,按序列顺序逐个检查各地址单元,直至找到一个未被占用的单元为止,将发生冲突的数据元素存入该地

8、址单元中。n 设哈希表的长度是m,发生冲突的地址是do 线性探查序列n d+1,d+2,m-1,0,1,d-1o 平方探查序列n(d+12)%m,(d-12)%m,(d+22)%m,(d-22)%m,第16 页,本讲稿共27 页天津大学17/27设哈希表的长度11,哈希函数是h(k)=k%11,将整数序列54,77,94,89,14,45,76 存入哈希表。按平方探查法处理冲突0 1 2 3 4 5 6 7 8 9 1054 77948954%11=1077%11=094%11=689%11=114%11=345%11=1(冲突)76%11=10(冲突)1445 76第17 页,本讲稿共27

9、页天津大学18/27解决冲突的方法(2)o 链地址法n 将哈希地址相同的数据元素存储到同一个单链表中,哈希表中的每个存储单元中不再存放数据元素而是存放相应单链表的头指针第18 页,本讲稿共27 页天津大学19/272.排序第19 页,本讲稿共27 页天津大学20/27 排序的基本概念 排序:将文件中的记录按排序码非递减(或非递增)的顺序重新排列 排序码:数据元素中的一个或多个数据项。排序码可以是关键字,也可以是其他若干数据项的组合。排序算法的稳定性:如果在待排序的元素序列中,存在着多个排序码相同的元素,按照某种排序算法排序后,这些元素的相对位置仍保持不变,则称该排序算法是稳定的,否则就是不稳定

10、的。第20 页,本讲稿共27 页天津大学 21/27直接插入排序o 以顺序查找的办法找到要插入的元素在已排好序的元素序列中应处的位置。o 所有元素分成2个集合:已排序记录集和待排序记录集。初始时,已排序记录集只有一个元素,即e0,待排序记录集是所有剩余元素。然后每次从待排序记录集中选取一个元素,使用顺序查找的方法,找到其在已排序记录集中的位置,将其插入到该位置,直到待排序记录集为空。第21 页,本讲稿共27 页天津大学 22/27待排序记录为50,20,75,34,4034 40 7520 50第22 页,本讲稿共27 页天津大学 23/27直接选择排序o 基本思想:用逐个比较的办法从待排序的

11、元素序列中选出最小的元素。依次对i=0,1,2,n-2分别执行如下的选择和交换步骤:在元素序列ei,ei+1,en-1中选择出最小的元素ek;当ki时,交换ei与ek的值。经上述n-1次的选择和交换后,排序工作即已完成。第23 页,本讲稿共27 页天津大学24/27冒泡排序设待排序的元素序列为S=e0,e1,en-1,要求按升序排列o 基本思想:n 从待排序记录集的一端(这里假定为低端)对相邻的两个元素(e0和e1,e1和e2,en-2和en-1)依次比较它们的排序码,若不符合排序的顺序要求,就将相应的两个元素互换,此过程称为一趟冒泡排序,最多经过n-1趟冒泡排序,排序工作即可完成。第24 页

12、,本讲稿共27 页天津大学 25/27o 一趟排序方法n 每趟排序的结果是将待排序记录集中排序码最大的元素交换到待排序记录集最后一个元素的位置。假设在一趟冒泡排序时,从ej+1以后没有发生元素的互换,则说明ej+1以后的元素是已经排好序的,下面只需要在e0到ej范围内进行新一趟的冒泡排序,即待排序记录集是从e0到ej,下一趟只需从e0到ej范围内进行第25 页,本讲稿共27 页天津大学26/2797275813496576待排序记录LastExchangeIndex279758134965762758971349657627581397496576275813499765762758134965977627581349657697待排序记录第一趟排序结束27581349657697待排序记录已排序记录第26 页,本讲稿共27 页天津大学27/2727581349657697待排序记录2758134965769727135849657697271349586576972713495865769727134958657697第二趟排序结束待排序记录27134958657697待排序记录已排序记录第27 页,本讲稿共27 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁