第七章搜索结构课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第七章搜索结构课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 搜索 结构 课件
- 资源描述:
-
1、东南大学计算机学院东南大学计算机学院 xxxx第七章第七章 搜索结构搜索结构1感谢你的观看2019年8月23本章主要内容本章主要内容n搜索的概念搜索的概念n静态搜索结构静态搜索结构r顺序搜索顺序搜索r有序顺序表有序顺序表顺序搜索顺序搜索折半搜索折半搜索斐波那契搜索斐波那契搜索n二叉搜索树二叉搜索树2感谢你的观看2019年8月23搜索的概念搜索的概念n在数据集合中寻找满足某种条件的数据元素在数据集合中寻找满足某种条件的数据元素r搜索可能成功搜索可能成功r也可能不成功也可能不成功n可唯一标识一个元素的属性称为关键字可唯一标识一个元素的属性称为关键字(key)r基于关键字的搜索结果是唯一的基于关键字
2、的搜索结果是唯一的r基于其他属性的搜索结果可能不唯一基于其他属性的搜索结果可能不唯一n衡量搜索算法时间效率的标准衡量搜索算法时间效率的标准r平均比较次数,或平均搜索长度平均比较次数,或平均搜索长度(ASL)3感谢你的观看2019年8月23顺序搜索顺序搜索n从表头从表头(或尾或尾)开始,依次用各对象的关键字与开始,依次用各对象的关键字与给定值给定值x比较比较r若值相等,搜索成功,返回下标若值相等,搜索成功,返回下标r若整个表都未找到,搜索失败若整个表都未找到,搜索失败4 1-01-0succ)1(.ASLniiniiipcp其中其中pi:搜索第搜索第 i 个元素概率个元素概率ci:搜索到第搜索到
3、第 i 个元素所需比较次数个元素所需比较次数.-102121)(11)(1nisuccnnnninASLpi=1/nci=i+1ASLunsucc=n+1搜索不成功的平均搜索长度搜索不成功的平均搜索长度搜索成功的平均搜索长度:搜索成功的平均搜索长度:n个元素个元素感谢你的观看2019年8月23有序顺序表有序顺序表n顺序搜索顺序搜索r从表头从表头(或尾或尾)开始,依次用各对象的关键字与给定开始,依次用各对象的关键字与给定值值x比较比较若值相等,搜索成功,返回下标若值相等,搜索成功,返回下标若若x比关键字大时,搜索失败比关键字大时,搜索失败5.-102121)(11)(1nisuccnnnninA
4、SL搜索成功的平均搜索长度:搜索成功的平均搜索长度:搜索不成功的平均搜索长度搜索不成功的平均搜索长度21)(111)(11-10nnnninnASLniunsuccn个元素,个元素,n+1个空档个空档感谢你的观看2019年8月23有序顺序表有序顺序表n折半搜索折半搜索rlow=0,high=n-1,mid=(low+high)/2rx先和先和mid元素比较元素比较若相等,搜索成功,返回下标若相等,搜索成功,返回下标若若x更小,继续在前半部分搜索更小,继续在前半部分搜索high=mid-1,mid=(low+high)/2若若x更大,继续在后半部分搜索更大,继续在后半部分搜索low=mid+1,
5、mid=(low+high)/26搜索搜索40lowmidhigh102030405060012345lowmid high102030405060012345lowmid high1020304050600123454030405040=40搜索成功搜索成功感谢你的观看2019年8月23有序顺序表有序顺序表n折半搜索折半搜索rlow=0,high=n-1,mid=(low+high)/2rx先和先和mid元素比较元素比较若相等,搜索成功,返回下标若相等,搜索成功,返回下标若若x更小,继续在前半部分搜索更小,继续在前半部分搜索high=mid-1,mid=(low+high)/2若若x更大,继
6、续在后半部分搜索更大,继续在后半部分搜索low=mid+1,mid=(low+high)/27搜索搜索25lowmidhigh102030405060012345lowmid high102030405060012345lowmid high10203040506001234525102520lowmid high102030405060012345lowhigh,搜索失败,搜索失败感谢你的观看2019年8月23有序顺序表有序顺序表n折半搜索折半搜索r折半搜索构造的判定树折半搜索构造的判定树设满二叉树设满二叉树n=2h-1则有则有2h=n+1,h=log2(n+1)平均搜索长度平均搜索长度85
7、0302040601011)(log11)(log11)21)(1)2*2*1)(2*3 2*22*(112212210 nnnnhnhhnASLh-hhsucc错位相减法错位相减法感谢你的观看2019年8月23有序顺序表有序顺序表n斐波那契搜索斐波那契搜索9F(n)=n,F(n-1)+F(n-2),n=0,1n20112350123458132134558967891011nF(n)感谢你的观看2019年8月23有序顺序表有序顺序表n斐波那契搜索斐波那契搜索rlow=1,high=n,mid=F(x-1),F(x)是最小的n的斐波那契数rx先和先和mid元素比较元素比较若相等,搜索成功,返回
8、下标若相等,搜索成功,返回下标若若x更小,继续在前半部分搜索更小,继续在前半部分搜索high=mid-1,mid=low+F(x-2)-1若若x更大,继续在后半部分搜索更大,继续在后半部分搜索low=mid+1,mid=low+F(x-3)-110011235012345813 21 34 55 8967891011nF(n)101520253035123456404550556065789101112lowmidhigh搜索搜索25感谢你的观看2019年8月23有序顺序表有序顺序表n斐波那契搜索斐波那契搜索rlow=1,high=n,mid=F(x-1),F(x)是最小的n的斐波那契数rx先
9、和先和mid元素比较元素比较若相等,搜索成功,返回下标若相等,搜索成功,返回下标若若x更小,继续在前半部分搜索更小,继续在前半部分搜索high=mid-1,mid=low+F(x-2)-1若若x更大,继续在后半部分搜索更大,继续在后半部分搜索low=mid+1,mid=low+F(x-3)-111011235012345813 21 34 55 8967891011nF(n)101520253035123456404550556065789101112lowmidhigh搜索搜索55感谢你的观看2019年8月23二叉搜索树二叉搜索树n二叉搜索树的概念二叉搜索树的概念r或者是空树或者是空树r或者
10、具有以下性质或者具有以下性质每个结点都有一个关键字每个结点都有一个关键字(key)左子树左子树上所有结点的上所有结点的key小于小于根结点的根结点的key右子树右子树上所有结点的上所有结点的key大于大于根结点的根结点的key左子树和右子树也是二叉搜索树左子树和右子树也是二叉搜索树12感谢你的观看2019年8月23二叉搜索树二叉搜索树n搜索搜索x操作操作r从根开始搜索从根开始搜索xr若当前结点为空,则搜索失败,否则若当前结点为空,则搜索失败,否则x小于当前结点小于当前结点key,在左子树搜索,在左子树搜索x大于当前结点大于当前结点key,在右子树搜索,在右子树搜索135365878194780
11、9452317搜索搜索23感谢你的观看2019年8月23二叉搜索树二叉搜索树n搜索搜索x操作操作r从根开始搜索从根开始搜索xr若当前结点为空,则搜索失败,否则若当前结点为空,则搜索失败,否则x小于当前结点小于当前结点key,在左子树搜索,在左子树搜索x大于当前结点大于当前结点key,在右子树搜索,在右子树搜索1453658781947809452317搜索搜索94感谢你的观看2019年8月23二叉搜索树二叉搜索树n插入插入x操作操作r从根开始搜索从根开始搜索x,若存在,放弃,若存在,放弃r否则搜索到叶子结点时否则搜索到叶子结点时x小于叶子结点小于叶子结点key,作为叶子结点左孩子,作为叶子结点
12、左孩子x大于叶子结点大于叶子结点key,作为叶子结点右孩子,作为叶子结点右孩子15插入插入885365878194780945231788感谢你的观看2019年8月23二叉搜索树二叉搜索树n删除删除x操作操作r从根开始搜索从根开始搜索x,若不存在,放弃;否则:,若不存在,放弃;否则:x只有左子树,左孩子填补只有左子树,左孩子填补x只有右子树,右孩子填补只有右子树,右孩子填补x有左右子树,右子树上中序第一结点有左右子树,右子树上中序第一结点v(左走直到头左走直到头)填补,用填补,用v的右孩子填补的右孩子填补v16536587819478094517删除删除4523感谢你的观看2019年8月23二
13、叉搜索树二叉搜索树n删除删除x操作操作r从根开始搜索从根开始搜索x,若不存在,放弃;否则:,若不存在,放弃;否则:x只有左子树,左孩子填补只有左子树,左孩子填补x只有右子树,右孩子填补只有右子树,右孩子填补x有左右子树,右子树上中序第一结点有左右子树,右子树上中序第一结点v(左走直到头左走直到头)填补,用填补,用v的右孩子填补的右孩子填补v175378094517删除删除78239488感谢你的观看2019年8月23二叉搜索树二叉搜索树n删除删除x操作操作r从根开始搜索从根开始搜索x,若不存在,放弃;否则:,若不存在,放弃;否则:x只有左子树,左孩子填补只有左子树,左孩子填补x只有右子树,右孩
14、子填补只有右子树,右孩子填补x有左右子树,右子树上中序第一结点有左右子树,右子树上中序第一结点v(左走直到头左走直到头)填补,用填补,用v的右孩子填补的右孩子填补v1853659978094517删除删除782381948188感谢你的观看2019年8月23二叉搜索树二叉搜索树n性能分析性能分析r满二叉树满二叉树19 nisuccASL1i in n2 2loglog1 112niunsuccASL1nin2log11中间结点等概率搜索,中间结点等概率搜索,中间结点数为中间结点数为n叶子结点等概率搜索,叶子结点等概率搜索,叶子结点数为叶子结点数为n+1叶子为搜索失败情况叶子为搜索失败情况其他为
15、其他为key感谢你的观看2019年8月23二叉搜索树二叉搜索树n性能分析性能分析r一般二叉树一般二叉树20p(n)表示在一棵有表示在一棵有n个结点的二叉树上个结点的二叉树上成功搜索一个关键值的平均比较次数成功搜索一个关键值的平均比较次数左子树有左子树有i个结点个结点右子树有右子树有n-i-1个结点个结点根根 1-nip01 1)1 1(*)1 1(1 1)(*1 1 1 11 1)(i in np pi in ni ip pi in nn nn nnipinnn202log41)(*21)(1ip随机情况下,二叉树操作代价平均为随机情况下,二叉树操作代价平均为O(log2n)叶子为搜索失败情况
16、叶子为搜索失败情况其他为其他为key感谢你的观看2019年8月23二叉搜索树二叉搜索树n性能分析性能分析r一般二叉树一般二叉树21 nisuccASL1i ii ih hp p njunsuccASL0j jj jh hq qpi:搜索中间结点:搜索中间结点 i 概率概率hi:j深度深度qj:搜索叶子结点:搜索叶子结点 j 概率概率hj:j的深度的深度叶子为搜索失败情况叶子为搜索失败情况其他为其他为key感谢你的观看2019年8月23二叉搜索树二叉搜索树n最优二叉搜索树最优二叉搜索树r假设有假设有n个个key,每个,每个key搜索概率不同,除搜索概率不同,除key之之外的值外的值(即搜索不成功
展开阅读全文