数据结构--summary[查找】

第九章 查找
1、画出由下列元素[22,32,18,2,8,23,67,16]构造的二叉排序树。
在这里插入图片描述
2、已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。
元素值
比较次数
在这里插入图片描述

根据算法,
对于34,第一次查找下标为(0+11/2的元素56,
比较后接着查找下标为(0+4/2的元素34
,找到了,查找次数为2.对于56,
查找次数为1.对于58,
第一次查找下标为(0+11/2的元素56,比较后第二次查找下标为
(6+11/2的元素74,
比较后第三次查找下标为(6+7/2元素58,查找次数为3.对于63,
查找次数为4.对于94,查找次数为4.

3、设散列表的长度为13,散列函数为H(k)=k%13,给定的关键码序列为19,14,23,01,68,20,84,27。试画出用线性探查法解决冲突时所构成的散列表。
0 1 2 3 4 5 6 7 8 9 10 11 12
1 2 1 4 1 1 3 1

查找成功的ASL=(1*5+2*1+3*1+4*1)/8

在这里插入图片描述

4、已知线性表的关键字集合{19,14,23,01,68,20,84,27,55,11,10,79
},已知散列函数为H(k)=k MOD 13,采用拉链法处理冲突,画计出该开散列表的结构。
在这里插入图片描述

补:
二、单项选择题(每小题1分,共27分)
(  B  )1.在表长为n的链表中进行线性查找,它的平均查找长度为
A. ASL=n;         **. ASL=(n+1)/2;**. ASL=+1;. ASL≈log2(n+1)-1

(1+2+3+---+n)/n

(  A  )2.【计研题2001】
折半查找有序表(4610122030507088100)。
若查找表中元素58,则它将依次与表中          比较大小,查找结果是失败。
A.20703050      B.30887050     
 C.2050     D.308850
 (0+9)/2=4号元素20
 58>20所以在20的右半边找
 (5+9)/2=7号元素70
 58<70所以在70的左半边存找
 (5+6/2=5号元素30
 58>30不是则看650
 
(  C  )3.【计研题2001】对22个记录的有序表作折半查找,当查找失败时,至少需要比较        次关键字。
A.3         B.4          C.5           D. 6
不成功logn(2为底)+1=4+1=5
成功:log(n+1)-1
(  A  )4. 链表适用于       查找
A.顺序       B.二分法      C.顺序,也能二分法      D.随机


( C   )5.  折半搜索与二叉搜索树的时间性能
             A. 相同       B.  完全不同        C. 有时不相同       D. 数量级都是O(log2n)

第十章 排序
1、有初始的无序序列为{98,65,40,12,51,100,77,88},给出对其进行快速排序(升序)的每一趟的结果。

98 65 40 12 51 100 77 88
1.挖掉基准数98
    __ 65 40 12 51 100 77 88
从右到左找到第一个比98小的数88填上面坑
(288 65 40 12 51 100 77 __
从左到右找到第一个比98打的上个数填上面的坑
(388 65 40 12 51 __ 77 100
重复2.3步
找到77
    88 65 40 12 51 77 __ 100
    i==j此时
    把基准数填进
    88 65 40 12 51 77 98 100 这是第一趟排序
    此时98的左边的数字都比他小,右边的数字都比他大
    再对88-65进行排序
    __ 65 40 12 51
    51 65 40 12 __ i==j
    51 65 40 12
    __ 65 40 12
    12 65 40 __
    12 __ 40 65
    12 40 __ 65 i==j
    12 40 51 65
    result:12 40 51 65 88 98 100
    
    

2、已知有一关键字序列为{3742179912924521130},如果我们采用冒泡法进行排序(按照升序排列),请给出每一趟排序的结果。
37 42 17 99 12 9 24 52 11 30
37 17 42 12 9 24 52 11 30 99

 -------
 
3、设有关键字序列为{10184361219158},请给出用希尔排序每一趟的结果。增量序列取为5321。(每一趟1.5分,共6分)
10 1  4  3  6 12 18 9 15 8 第一次
10,3,18,8
1 6 9 
4 12 15
3       8         10     18
  1         6        9
     4         12      15
  3 1 4 8 6 12 10 9 15 18 第二次
  3   4   6    10   15
    1    8   12   9    18
  3  1 4 8 6 9 10 12 15 18 第三次
  1 3 4 6 8 9 10 12 15 18 第四次
  
  
  
 
、、



4、有初始的无序序列为{98,65,38,40,12,51,100,77,26,88},给出对其进行归并排序(升序)的每一趟的结果。
98 65 38 40 12 51 100 77 26 88
65 98 38 40 12 51 77 100 26 88
38 40 65 98 12  51 77 100  26 88
12 38 40 51 65 77 98  100 26 88
12 26 38 40 51 65 77 88  98 100

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值