假定对有序表:(2,4,5,7.24,35,42,53,63,72,90,95)进行折半口找,成回答下列问题:(1) 画出届述历半查就过程的判定树; (2)若查找元素54和90,需依次与哪些元素比较,3假定每个元素的查找机遇相等,求查找成功时的平均查找长度邮些元素比4敌?
时间: 2023-09-12 16:06:00 浏览: 173
### 回答1:
1) 判定树如下所示:
```
42
/ \
/ \
7 72
/ \ / \
/ \ / \
4 24 53 90
/ \ / \ / \
2 5 35 63 95
```
2) 查找元素54时需要与元素42进行比较,与元素53进行比较后发现不在表中,查找失败。查找元素90时直接比较即可找到。
3) 由于每个元素的查找机会相等,成功时的平均查找长度即为所有元素的查找次数之和除以元素总数,其中查找次数即为元素所在层数。因此,平均查找长度为:
```
(1+2+2+3+3+3+3+4+4+4+4+4) / 12 = 2.92
```
4) 比较元素4、24、42、53、63、72和90的查找机会都比元素2、5、7、35和95的查找机会大,因此这些元素比较“敌”。
### 回答2:
(1) 折半查找的判定树如下所示:
53
/ \
24 72
/ \ / \
7 42 63 90
/ \ / \ / \ / \
4 5 - - - - - 95
/ \
2 -
(2) 查找元素54:
首先与53比较,由于54大于53,则向右子树搜索;
然后与72比较,由于54小于72,则向左子树搜索;
接着与63比较,由于54小于63,则向左子树搜索;
最后与90比较,由于54小于90,则向左子树搜索;
没有找到元素54。
查找元素90:
首先与53比较,由于90大于53,则向右子树搜索;
然后与72比较,由于90大于72,则向右子树搜索;
最后与90相等,搜索成功。
(3) 查找成功时的平均查找长度为查找每个元素的查找长度之和除以元素的个数。
元素2的查找长度为1
元素4的查找长度为2
元素5的查找长度为3
元素7的查找长度为4
元素24的查找长度为5
元素35的查找长度为6
元素42的查找长度为7
元素53的查找长度为8
元素63的查找长度为9
元素72的查找长度为10
元素90的查找长度为11
元素95的查找长度为12
平均查找长度 = (1+2+3+4+5+6+7+8+9+10+11+12)/12 = 78/12 = 6.5
因此,查找成功时的平均查找长度为6.5个元素比较。
### 回答3:
(1) 判定树如下所示:
53
/ \
24 72
/ \ / \
7 42 63 90
/ \ / / / \
2 5 35 54 73 86 91 95
(2) 当查找元素54时,需依次与53、72、63进行比较。
当查找元素90时,需依次与53、72进行比较。
(3) 假定每个元素的查找机会相等,平均查找长度为每个元素的查找机会乘以其查找时的路径长度的总和,再除以元素的总数。
平均查找长度 = (1/11)*(1*3+1*3+1*3+1*4+1*4+1*4+1*4+1*5+1*5+1*5+1*5) = (1/11)*45 = 4.09
所以当查找成功时,平均查找长度为4.09。
阅读全文