查找算法平均查找长度的计算方法第32 2011年l2 (1.渤海大学工学院,辽宁锦州121013:2.渤海大学大学计算机教学部 辽宁锦州121013;3.渤海大学旅游学院,辽宁锦州121013) 摘要:给出了常用查找算法平均查找长度的计算方法,包括查找成功和查找失败平均查找 长度的计算,并通过实例进行了解析,便于学习者学习和掌握查找算法,同时为应用者选择查找 查找就是在含有若干记录的表中找出关键字值与给定值相同的记录.若表中存在这样的记录,则查 找成功,返回所找到记录的信息或记录在表中的位置;否则查找失败,返回空记录或空指针.查找表有静 态查找表,动态查找表和散列表三种J.每种查找表都有相应的查找 算法.一般的查找过程都是对查找 表内的记录按一定顺序进行关键字的比较,所以一个查找算法效率的优劣主要取决于查找过程中的比较 次数.绝对比较次数计算起来比较繁琐,所以一般用平均比较次数(也称为平均查找长度)作为衡量一个 查找算法效率的标准.平均查找长度ASL(Averagesearchlength)定义 其中,n为查找表中记录的个数,P 是在查找表中查找第i 个记录的概 率.为了简单起见,通常认为查找每 个记录的概率是相等的,即,P=1/n(1i);C是查找第 个记录所需的比较次数.计算给定查找算法 查找成功或查找失败时的平均查找长度是各类数据结构课程考试常考的题目],也是实际中选择查找 方法的依据J,但所有教材和指导书介绍的都不够全面.为此,本文给 出了常用查找算法查找成功和查 1.1顺序查找法平均查找长度 顺序查找法要求查找表顺序存储或链式存储.顺序查找的过程为:从表的一端开始,依次将表中元素 关键字与给定的值比较,如果表中某个记录的关键字值与给定值相等,则查找成功;若到表的另一端后,仍 个记录,且采用顺序查找法查找一个记录,则在等概率情况下查找成功时的平均查找长 作者简介:秦玉平(1965一),男,博士,教授,硕士生导师,从事计算机教 学和科研工作 354渤海大学(自然科学版)第32 若查找表为有序表,则在等概率情况下查找成功时的平均查找长度与无序表相同,查找失败时的平均 1.2二分查找法平均查找长度 二分查找法要求查找表按顺序存储,且表中记录按关键字有序.二分查找的过程为:首先确定查找表 中点位置,然后用待查值与查找表中间位置上记录的关键字值比较,若相等,则查找成功;否则,若待查值 小,则在查找表的前半部分继续进行二分法查找,否则在查找表的后半部分继续进行二分法查找.重复上 个记录,且采用二分查找法查找一个记录,则在等概率情况下查找成功时的平均查找长 条记录在二分查找判定树中的层数,若该结点的左孩子为空,则Ot=1,否则 条记录在二分查找判定树中的层数,若该结点的右孩子为空,则卢:1,否则卢.=0. 查找判定树如图1所示. 1.3在二叉排序树上查找的平均查找长度 二叉排序树的中序遍历序列是一个按关键字递增的有序序列.在二叉排序树上进行查找,是一个从 根结点开始,沿某一个分支逐层向下进行比较判断是否相等的过程.即,当二又排序树不空时,首先将给 定值与根结点关键字值比较,若相等,则查找成功;否则,根据给定值与根结点关键字之间的大小关系,在 左子树或右子树上继续进行查找,直到找到,或左子树或右子树为空.由查找过程可知,在二叉排序树上 进行查找,若查找成功,则是走了一条从根结点到待查记录的路径;若查找失败,则是走了一条从根结点到 个记录,在二叉排序树上查找一个记录,则在等概率情况下查找成功时的平均查找长度 其中,z是第条记录在二叉排序树中的层数,若该结点的左孩子为空, 例如,输入一个正整数序列(53,17,12,66,58,70,87,25,56,60),按次序构造的二叉排序树如图2 1.4散列查找法平均查找长度 散列表的查找过程和造表过程一致.查找过程为:对于待查值,计算散列地址,若散列地址内为空标 记,则查找失败;若待查值与该地址内记录关键字相等,则查找成功.否则,求下一地址,直至散列地址为 空标记,或已搜索了表中的所有单元(查找不成功),或待查值与该地址内记录关键字相等(查找成功)为止.