最新静态搜索结构动态搜索结构散列可扩充散列课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《最新静态搜索结构动态搜索结构散列可扩充散列课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 静态 搜索 结构 动态 散列可 扩充 课件
- 资源描述:
-
1、静态搜索结构动态搜索结构散静态搜索结构动态搜索结构散列可扩充散列列可扩充散列ppt课件课件查找 搜索搜索结构 同一数据类型(纪录)的元素 构成的数据集合。搜索 在数据集合中寻找满足条件的对 象(数据元素)。关键字 数据元素中某个字段(数据项)的值。主关键字 唯一地表示一个纪录。次关键字 标识若干纪录 k f(k)=s=j2j-1 其中 n=2k-1 j=1 f(k)-1=(k-1)2k证明 1)f(1)-1=0 2)f(k+1)-1=f(k)+(k+1)2k 1 =(k-1)2k+(k+1)2k =2k2k=k2k+1 =(k+1-1)2k+1 S=(k-1)2k+1满二叉树n个数据的总查找次
2、数:k s=j2j-1 其中 n=2k-1 j=1 S=(k-1)2k+1 由 n=2k-1 得 k=log2(n+1)S=(n+1)(log2(n+1)-1)+1 =(n+1)log2(n+1)-n满二叉树n个数据的搜索成功平均概率时间复杂性 (n+1)/n)log2(n+1)-1当n50时 近似于 log2(n+1)-1n个元素的折半搜索2k-1n2k+1-1搜索成功平均概率时间复杂性 介于 log2(2k)-1 和 log2(2k+1)-1 之间即 k-1 和 k 之间 k=log2(n+1)n个元素的折半搜索成功平均概率时间复杂性 log2(n+1)-1/2 斐波那契搜索根据斐波那契序
3、列的特点对有序表分割0.618法斐波那契序列 1 2 3 5 8 13 21 34 55f(n)f(n+2)=f(n)+f(n+1)从20个数的数表中查找一个纪录先找比较第13个,如果小,再比较第8个,如果大 比较后几个数的第5个每次都比较位于这个数列的黄金分割点0.618处 以下序列中查找元素10的过程1 2 3 4 5 6 7 8 9 10 11 12 13 14 15平均查找性能优于折半查找 O(log2n)最坏情况比折半查找差(3)静态树表的搜索不等概率查找时折半查找不一定好,以每点查找次数(概率)为这点的权wi带权二叉树总路径长度 PH=wihi iPH 最小的二叉树叫静态最优二叉树
4、不同于霍夫曼树:每个结点都有权值,都要查找。ECAGBDHF I545112343A B C D E F G H I1 1 2 5 3 4 4 3 5PH=31+22+24+13+53+43+33+14+54=78不是静态最优二叉树查找次数权值次优查找树 Nearly Optimal Search数据 al,al+1,ai-1,ai,ai+1,ah权值 wl,wl+1,wi-1,wi,wi+1,wh令 h i-1 pi=wj-wj j=i+1 j=l取最小值:pi=minpj:ljh以ai为根,al+1,ai-1为左子树 ai+1,ah 为右子树构造次优查找树 i令swi=wj,pi=swh-
5、swi-swi-1 j=l A B C D E F G H I wi 1 1 2 5 3 4 4 3 5s wi 1 2 4 9 12 16 20 23 28 pi 27 25 22 15 7 0 8 15 23 pi 11 9 3 1 9 8 1 7pi 3 1 2 A B C D E F G H I wi 1 1 2 5 3 4 4 3 5FDAHBEIGC342115534HP=4*1+5*2+3*2+1*3+3*3+4*3+5*3+1*4+2*4=7178次最优树平均查找次数 O(HP/swh)索引顺序表 分块有序 后一子表中的关键字都大于前一子表中的关键字22 48 86 1 7 1
6、32212138920334244382448605874498653 最大关键字 起始地址索引表索引顺序表的查找 查找 关键字key=38 1.先检索索引表 确定子表位置 2.再在子表中搜索22 48 86 1 7 132212138920334244382448605874498653索引表索引顺序表的查找成功的平均概率时间复杂性 索引表查找时间+子表查找时间设索引表长为s,搜索表长为n,被平均分成s块,每块长n/s,索引表平均查找时间 (s+1)/2 子表平均查找时间 (n/s+1)/2 (s+1)+(n/s+1)=(s+n/s)+1当 s=n 时 有最小值 n +1 有序索引顺序表当索
7、引顺序表已经排序时,子块搜索可以用折半搜索。平均查找时间:(s+1)/2+log2(1+n/s)-1/2 =log2(1+n/s)+s/2索引也用折半查找,平均查找时间 log2(s+1)-1/2+log2(1+n/s)-1/2 =log2(s+1)(1+n/s)-1当s=n 时 2 log2(n+1)-1二、动态搜索表特点 查找过程中生成搜索表 查找失败时插入纪录 二叉搜索树 平衡二叉搜索AVL树二叉搜索树二叉搜索树(二叉排序树)(二叉排序树)其左非空子树上所有结点的值都小于根结点的值 其右非空子树上所有结点的值都大于根结点的值 左右子树也是二叉搜索树4938651397277649二叉搜索
8、树的作用:排序,检索49 38 65 97 76 13 27 49二叉搜索树的插入过程二叉搜索树的插入过程45 12 8 57 60 20 11 59 50 345125782060311595057 20 8 45 60 59 3 12 50 11572060845113125059平衡二叉树AVL树 加快查找排序的速度定义:左右两子树深度之差不超过1,左子树和右子树都是平衡二叉树。4512578206031159504512820311不平衡平衡同一个数组的二叉排序树和二叉平衡树20 30 80 40 10 60 50 70492065975027134910701340304980604
9、9106597602713495070134020498030AVL树的结点增加一个平衡因子 left data balanceFactor rightbalance=height(right subtree)-height(left subtree)balance=1或-149386513 1 1平衡因子左重加左右转结点p左重,还要加一个左结点 不平衡4938651310 p lc右转:将p作lc的右子结点4938651310 p lc左重加左右转结点p左重,还要加一个左结点 不平衡3813104020plc 43813104020plc 4右转:将p作lc的右子结点,将lc的右子树接成p的
10、左子树右重加右左转结点p右重,还要加一个右结点 不平衡3813394045prc 4454038439prc13左转:将p作rc的左子结点,将rc的左子树接成p的右子树左重加左的右双旋 左转再右转结点p左重 lc的右子树加一个结点 不平衡3813104020plc26np先以lc np为轴左转3813104020plc26np再以p,np为轴右转3813104020plc26np右重加右的左双旋 右转再左转结点p右重 rc的左子树加一个结点 不平衡38135546prc41np先以rc np为轴右转3841674613prc55np再以p,np为轴左转5538136746npp41np67AV
11、L树的生成20 30 80 40 10 60 50 70491065602713134020498030左转49652713204980304965271320498030左重加左的右左转再右转20 30 80 40 10 60 50 70106013404965271320498030左重加左的右左转再右转106013404965271320498030左转106013404965271320498030右转20 30 80 40 10 60 50 7010601340496527132049803010601340496527132049803013701350AVL树的高度设AVL树高度
12、为h,这棵树至少多少结点?设至少有nh个结点n0=0,n1=1,n2=2,nh+1=nh+nh-1+1,nh+1+1=nh+1+nh-1+1,令 fh=nh+1,则 f0=1,f1=2,fh+1=fh+fh-1 nh=fh-1 nh=(51/2)*(1+51/2)/2)h+3-1n个结点的AVL树的高度h至多是多少?n=(51/2)*(1+51/2)/2)h+3-1 (n+1)/(51/2)=(1+51/2)/2)h+3 log2(n+1)-log251/2=(h+3)(log2(1+51/2)/2)log2(1+51/2)/2)0.694 h+3=(log2(n+1)-log251/2)/0
13、.694 h(3/2)log2(n+1)-1练习一.画出以下输入所对应AVL树:1)R,O,T,A,R,Y,C,L,U,B 2)60,25,7,99,15,3,10 38,59,62,34二.分别给出这两棵树的前序,中序,后序遍历输出三、高度为5的AVL树至少几个节点。15个节点的AVL树至多多高?二叉搜索树的查找分析平均等概率查找时间(1+2+2+3+3+3)/6=14/6451257820604512820311(1+2+3+4+5+6)/6=7/2随机二叉搜索树等概率平均查找时间 P(n)2(1+1/n)lnn O(log2n)最坏 O(n/2)平衡二叉搜索AVL树的查找分析求含有n个关
展开阅读全文