MOOC数据结构与算法Python版-第八周测验

1 单选(2分)

假设你将下列数据:

113 , 117 , 97 , 100 , 114 , 108 , 116 , 105 , 99

根据开放定址的线性探测法,填入长度为11的散列表中,且散列函数选为h(n)=n%11

哪一个选项最好地表达了填入数据之后散列表的状况?D

  • A.

    100, __, __, 113, 114, 105, 116, 117, 97, 108, 99

  • B.

    100, 113, 117, 97, 14, 108, 116, 105, 99, __, __

  • C.

    117, 114, 108, 116, 105, 99, __, __, 97, 100, 113

  • D.

    99, 100, __, 113, 114, __, 116, 117, 105, 97, 108

2 单选(2分)

对于一个有13个槽的散列表,选取散列函数为h(n)=n%13,冲突解决方案选为开放定址的线性探测,以首个槽为0号,末个槽为12号。26,130和27按顺序填入,问他们的填入槽号分别为?B

  • A.

    0,0,1

  • B.

    0,1,2

  • C.

    1,0,2

  • D.

    1,2,0

3 单选(2分)

对于一个有13个槽的散列表,选取散列函数为h(n)=n%13,冲突解决方案选为数据项链方法,以首个槽为0号,末个槽为12号。26,130和27按顺序填入,问他们的填入槽号分别为?B

  • A.

    1,1,2

  • B.

    0,0,1

  • C.

    0,1,2

  • D.

    0,0,2

4 单选(2分)

以下是一个槽数为7的散列表,采用开放定址的线性探测:

7,14,21,__,25,18,11

查找数据项21时需要经过几次比对?B

  • A.

    1

  • B.

    3

  • C.

    2

  • D.

    4

解析:  B、需要与0,1,2号槽的7,14,21分别比对,得到数据在2号槽

5 单选(2分)

以下是一个槽数为7的散列表,采用开放定址的线性探测:

 7,14,21,__,25,18,11 

查找数据项24时需要经过几次数据比对(计算槽号次数不计)?C

  • A.

    1

  • B.

    2

  • C.

    0

  • D.

    3

解析:  C、计算得到24应该在3号槽,但3号槽为空,不必比对

6 多选(3分)

下列关于一个数据项数量为N的完美散列的叙述何者正确?BC

  • A.

    散列的存储需要比顺序存储使用更少存储空间

  • B.

    python中的字典是散列的一个使用方式

  • C.

    散列查找的时间复杂度在O(1)

  • D.

    散列查找的时间复杂度在O(logN)

7 多选(3分)

假设你想为全学院毕业班同学共250人做通讯录,且打算将11位手机号存储在某采用开放定址的线性探测的散列表。以下散列方案中合适为?AB

  • A.

    选取手机号对607(607是一个质数)的余数

  • B.

    选取手机号末三码

  • C.

    选取手机号首三码

  • D.

    选取手机号对211(211是一个质数)的余数

解析:  A、对250个数据项而言,607是一个足够大乃至于可以用于散列的质数  B、外卖、快递和热门餐馆预约叫号确认的常用方式,实测可用  C、大家的手机号前两位多为13,16,18,极有可能散列效果不佳或无法成功散列  D、250个数据项无法在211个槽成功散列

8 多选(3分)

以下关于散列算法分析的叙述,何者正确?BCD

  • A.

    如果采用数据链来解决冲突,负载因子0.8,成功的查找,平均需要比对次数约为3

  • B.

    如果采用线性探测的开放定址法来解决冲突,负载因子0.8,成功的查找,平均需要比对次数约为3

  • C.

    如果采用数据链来解决冲突,负载因子8,失败的查找,平均需要比对次数约为8

  • D.

    如果采用数据链来解决冲突,负载因子8,成功的查找,平均需要比对次数约为5

你可能感兴趣的:(Python,数据结构)