欢迎来到天天文库
浏览记录
ID:57927822
大小:313.00 KB
页数:37页
时间:2020-09-03
《【精品数据结构】查找技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第7章查找技术查找——也叫检索,是根据给定的某个值,在表中确定一个关键字等于给定值的记录或数据元素关键字——是数据元素中某个数据项的值,它可以标识一个数据元素查找方法评价查找速度占用存储空间多少算法本身复杂程度平均查找长度ASL(AverageSearchLength):为确定记录在表中的位置,需和给定值进行比较的关键字的个数的期望值叫查找算法的~7.1顺序查找查找过程:从表的一端开始逐个进行记录的关键字和给定值的比较算法描述Ch7_1.ci例01234567891011513192137566475808892找6464iiii比较次
2、数=5比较次数:查找第n个元素:1查找第n-1个元素:2……….查找第1个元素:n查找第i个元素:n+1-i查找失败:n+1顺序查找方法的ASL7.2折半查找查找过程:每次将待查记录所在区间缩小一半适用条件:采用顺序存储结构的有序表算法实现设表长为n,low、high和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值初始时,令low=1,high=n,mid=(low+high)/2让k与mid指向的记录比较若k==r[mid].key,查找成功若kr[mid].key
3、,则low=mid+1重复上述操作,直至low>high时,查找失败算法描述lowhighmid例1234567891011513192137566475808892找211234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhighmidCh7_2.c例1234567891011513192137566475808892lowhighmid找701234567891011513192137566475808892lowhighm
4、id1234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhigh1185210741936判定树:1234567891011513192137566475808892算法评价判定树:描述查找过程的二叉树叫~有n个结点的判定树的深度为log2n+1折半查找法在查找过程中进行的比较次数最多不超过其判定树的深度折半查找的ASL7.3分块查找查找
5、过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找适用条件:分块有序表算法实现用数组存放待查记录,每个数据元素至少含有关键字域建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针算法描述Ch7_3.c12345678910111213141516171822121389203342443824486058745786532248861713索引表查38分块查找方法评价ASL最大最小两者之间表结构有序表、无序表有序表分块有序表存储结构顺序存储结构线性链表顺序存储结构顺序存储结构线性链表查找方法比较顺
6、序查找折半查找分块查找二叉排序树定义:二叉排序树或是一棵空树,或是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉排序树二叉排序树的插入插入原则:若二叉排序树为空,则插入结点应为新的根结点;否则,继续在其左、右子树上查找,直至某个叶子结点的左子树或右子树为空为止,则插入结点应为该叶子结点的左孩子或右孩子二叉排序树生成:从空树出发,经过一系列的查找、插入操作之后,可生成一棵二叉排序树插入算法例{10,18,3,8,
7、12,2,7,3}1010181018310183810183812101838122101838122710183812273中序遍历二叉排序树可得到一个关键字的有序序列Ch5_9.c二叉排序树的删除要删除二叉排序树中的p结点,分三种情况:p为叶子结点,只需修改p双亲f的指针f->lchild=NULLf->rchild=NULLp只有左子树或右子树p只有左子树,用p的左孩子代替p(1)(2)p只有右子树,用p的右孩子代替p(3)(4)p左、右子树均非空沿p左子树的根C的右子树分支找到S,S的右子树为空,将S的左子树成为S的双亲Q的右
8、子树,用S取代p(5)若C无右子树,用C取代p(6)SQPLP中序遍历:QSPLPSQPL中序遍历:QSPL(2)SPPLQ中序遍历:PLPSQSPLQ中序遍历:PLSQ(1)中序遍历:PPRSQSPRQ中
此文档下载收益归作者所有