求“在散列表上查找成功与不成功的平均查找长度 ”具体分析过程,关于这点的知识,不懂,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 15:01:31

求“在散列表上查找成功与不成功的平均查找长度 ”具体分析过程,关于这点的知识,不懂,
求“在散列表上查找成功与不成功的平均查找长度 ”具体分析过程,关于这点的知识,不懂,

求“在散列表上查找成功与不成功的平均查找长度 ”具体分析过程,关于这点的知识,不懂,
(1).首先明确一个概念装载因子,装载因子是指所有关键子填充哈希表后饱和的程度,它等于 关键字总数/哈希表的长度.根据题意,我们可以确定哈希表的长度为 L = 7/0.7 = 10;因此此题需要构建的哈希表是下标为0~9的一维数组.根据散列函数可以得到如下散列函数值表.
H(Key) = (keyx3) MOD 7,例如key=7时,H(7) = (7x3)%7 = 21%7=0,其他关键字同理.
Key 7 8 30 11 18 9 14
H(Key) 0 3 6 5 5 6 0
(表1)
采用线性探测再散列法处理冲突,所构造的散列表为:
地址 0 1 2 3 4 5 6 7 8 9
关键字 7 14 8 11 30 18 9
(表2)
下面对散列表的构造方式加以说明,注意表1中的关键字7和14,30和9,11和18,这三组关键子的H(Key)值相同,这在构建散列表时就会产生冲突,因为他们的地址相同,所以要通过一定的冲突处理方法来解决这个问题.依题,采用线性探测再散列法处理冲突.下面详细介绍如何构建散列表:
第一个key 7,它的地址是0,因此放到散列表的数组下表为0的位置,这个位置上没有关键字,因此没有冲突可以直接填入;
第二个key 8,它的地址是3,因此放到散列表的数组下表为3的位置,这个位置上没有关键字,因此没有冲突可以直接填入;
第三个key 30,它的地址是6,因此放到散列表的数组下表为6的位置,这个位置上没有关键字,因此没有冲突可以直接填入;
第四个key 11,它的地址是5,因此放到散列表的数组下表为5的位置,这个位置上没有关键字,因此没有冲突可以直接填入;
第五个key 18,它的地址是5,因此放到散列表的数组下表为5的位置,但这个位置上已经有关键字11,遇到了冲突,此时我们根据线性探测再散列法来处理这个冲突,探测下一个位置6,6这个位置上已经存在关键字30则继续增加步长1,因此现在的新地址应为7,位置7上没有关键字,放入即可,到此冲突已经解决;
第六个key 9,它的地址是6,因此放到散列表的数组下表为6的位置,但这个位置上已经有关键字30,遇到了冲突,探测下一个位置7,7这个位置上已经存在关键字18则继续增加步长1,因此现在的新地址应为8,位置8上没有关键字,放入即可;
第七个key 14,它的地址是0,因此放到散列表的数组下表为0的位置,但这个位置上已经有关键字7,遇到了冲突,探测下一个位置1,位置1上没有关键字,放入即可;
到这一步所有关键字均已填入,散列表已经构造完成,如表2所示.
(2)等概率情况下查找成功平均查找长度:
这一问可以根据第一问的构造过程求
key7一次就填入了表中,因此查找次数为1,同理8,30,11查找次数均为1; key18 进行了3次放入操作,探测位置分别是5,6,7 ,因此查找次数为3;key9也是3次;key14 进行了两次探测,因此查找次数为2.次数表如表3所示
Key 7 8 30 11 18 9 14
Count 1 1 1 1 3 3 2
(表3)
所以ASLsuccess= (1+1+1+1+3+3+2)/ 7 = 12/7.
等概率情况下查找不成功的平均查找长度:
接下来讨论不成功的情况,看表2,计算查找不成功的次数就直接找关键字到第一个地址上关键字为空的距离即可,但根据哈希函数地址为MOD7,因此初始只可能在0~6的位置.等概率情况下,查找0~6位置查找失败的查找次数为:
看地址0,到第一个关键字为空的地址2的距离为3,因此查找不成功的次数为3.
地址1,到第一个关键为空的地址2的距离为2,因此查找不成功的次数为2.
地址2,到第一个关键为空的地址2的距离为1,因此查找不成功的次数为1.
地址3,到第一个关键为空的地址4的距离为2,因此查找不成功的次数为2.
地址4,到第一个关键为空的地址4的距离为1,因此查找不成功的次数为1.
地址5,到第一个关键为空的地址2(注意不是地址9,因为初始只可能在0~6之间,因此循环回去)的距离为5,因此查找不成功的次数为5.
地址6,到第一个关键为空的地址2(注意不是地址9,因为初始只可能在0~6之间,因此循环回去)的距离为4,因此查找不成功的次数为4.
因此查找不成功的次数表如下表所示
Key 7 8 30 11 18 9 14
Count 3 2 1 2 1 5 4
(表4) 所以ASLunsuccess= (3+2+1+2+1+5+4)/ 7 = 18/7.

求“在散列表上查找成功与不成功的平均查找长度 ”具体分析过程,关于这点的知识,不懂, 数据结构中,查找不成功的平均查找长度怎么求? 折半查找不成功的平均搜索长度怎么求? 计算各种查找方法在等概率情况下查找成功时的平均查找长度 数据结构查找技术假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的节点数为1;比较两次查找成功的结点数为( ),比较四次查找成功的结点数为( );平均查找长度为( ). 数据结构与算法选择题!1.在最坏的情况下,查找成功时二叉排序树的平均查找长度()A.无法与顺序表的平均查找长度比较B.大于顺序表的平均查找长度C.小于顺序表的平均查找长度D.与顺序表 【讨论】这道题怎么求折半查找的平均查找长度?在顺序存储的线性表[0...29]上进行顺序折半查找的平均查找长度为()?A.4 B.62/15 C.64/15 D.[] 数据结构折半查找的二叉查找树的问题设有序表顺序表中的元素依次为(17,67,89,100,123,157,200,213,307,367)试画出其进行折半查找的二叉排序树,并计算查找成功和不成功的平均查找长度. 设散列函数H(key)=key MOD 7,用线性探测再散列法解决冲突.对关键字序列{13,28,72,5,16,8,7,11}在地址空间为0-10的散列区中建散列表,画出此表,并求等概率情况下查找成功时的平均查找长度. 一个关于平均查找长度的数据结构判断题对有序表而言,采用折半查找方法查找表中的数据元素,其查找成功的平均查找长度一定比采用顺序查找方法时的平均查找长度要小 求帮忙判断下 数据结构题目:才用折半查找算法在长度为12的有序表中查找一个元素时,查找成功的平均查找长度为多少?...数据结构题目:才用折半查找算法在长度为12的有序表中查找一个元素时,查找成功 算平均查找长度长度为12的按关键字有序的查找表采用顺序组织方式,若用二分法查找,则在等概率情况下,查找不成功的平均查找长度是?答案是49/13,不知道怎么算出来的,也不一定对. 在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时平均查找长度为多少假定查找每个元素的概率都相等 在下列查找方法中,平均查找速度最快的是( A)顺序查找 B)折半查找 c)分块查找 D)二叉排序树查找在下列查找方法中,平均查找速度最快的是(A)顺序查找 B)折半查找c)分块查找 D)二叉排序树查找 二分法平均比较次数有一个长度为二的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为?有公式吗 用序列37,69,31,33,53,29建立一个二叉排序树.(1)画出二叉排序树;(2)假设查找表中每个记录的概率相同,求查找成功时的平均查找长度. 有一个长度为12的有序表,按折半查找法对表进行查找,在表内各元素等概率的情况下查找成功所需的平均比较次 数据结构 二分查找的问题(13,18,24,35,47,50,62,83,90),查找方法用二分查找,计算出查找成功时的平均查找长度具体过程是怎么样的