14周知原理-查找(一)



1、对于A[0..10]有序表{12,18,24,35,47,50,62,83,90,115,134}
(1)用二分查找法查找 90时,需进行多少次查找可确定成功?
(2)当查找47时需进行多少次查找可确定成功?
(3)查找100时,需进行多少次查找才能确定不成功?
(4)求成功和不成功时的平均查找长度。
(5)构造对于这个序列的判定树,并再求成功和不成功时的平均查找长度。

 解:

(1)用二分查找法查找90时,先找到50,因90大于50,向50的右子树进行查找,找到90.一共进行2次查找。(50-90)

(2)先找到50,因47小于50,向50的左子树进行查找,找到24,47大于24,向24的右子树查找,找到35,又找到47.。共进行4次查找。(50-24-35-47)

(3)先找到50,100大于50,向50的右子树进行查找。找到90,向90的右孩子查找,找到115,找不到。共进行3次查找。(50-90-115)

(4)

2、现给出一个分块有序的数据表,每块中元素的个数s=8,其中的数据有:
22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56,74,61,90,80,96,127,158,116,114,128,113,115,102,184,211,243,188,187,218,195,210,279,307,492,452,408,361,421,399,856,523,704,703,697,535,534,739
(1)构造索引表,并画出索引存储结构;
(2)请描述查找61的过程,需要多少次比较;
(3)请描述查找739的过程,需要多少次比较;
(4)请描述查找200的过程,经过多少次比较后才能确定找不到。

 解:

(1)

(2)在索引表中进行折半查找(158-45-98),共3次;在以98为最大值的块中进行顺序查找(55-98-56-74-61),共5次。所以查找61共需要8次比较。

(3)在索引表中进行折半查找(158-492-856),共3次;在以856为最大值的块中进行顺序查找(856-523-704-703-697-535-534-739),共8次。所以查找739共需要11次比较。

(4)在索引表中进行折半查找(158-492-243),共3次;在以243为最大值的块中进行顺序查找(184-211-243-188-187-218-195-210),共8次。所以查找61共需要11次比较。

3、将整数序列{43,52,75,24,10,38,67,55,63,60}中的数依次插入到一棵空的二叉排序树中,构造出相应的二叉排序树,要求用图形给出构造过程。

 

 

 

4、将整数序列{43,52,75,24,10,38,67,55,63,60}依次插入到一棵空的平衡二叉树中,试构造相应的平衡二叉树,要求用图形给出构造过程。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值