选择题
[2023年第5题]:B
[2023年第8题]:C
二分查找的比较次数,可以通过画二叉查找树来解决。
[2021年第13题]:C
分块查找,Mysql的存储数据记录的表也是用的B+树,就是分块查找
[2021年第14题]:B
[2021年第15题]:C
[2021年第16题]:D
[2021年第6题]:A
[2019年第6题]:D
[2019年第8题]:C
名词解释
[2020年第8题]. 串的模式匹配:在主串中搜索与模式串相同的子串的位置。
填空题
[2021年第4题]:散列表。
查找算法只有顺序查找,二分查找,分块查找,哈希查找。
顺序查找,二分查找,分块查找都明显与数据个数有关,但是哈希查找在无哈希冲突的情况下,ASL与数据元素个数无关。
并且书上是规定散列表的平均查找长度依赖于散列表的装填因子,而不直接依赖于表中的记录数n和散列表长度m。
简答题
[2023年第4题]:
(1)、
| 31 | 16 | 24 | 10 | 19 | 17 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
ASLsucc=(1+2+1+4+1+5)/6=2.3
(2)、
ASLunsucc=(1+1+2+5+1+2+5)/11=17/11
[2022年第3题]:
(1)、
| 7 | 14 | 18 | 8 | 11 | 30 | 9 | |||
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
(2)、(1+1+1+1+1+2+2)/7=1.3
[2020年第5题]: (1)答案同下一题——2019年综合应用题第5题
[2019年综合应用题第5题]:
(1)、
(2)、65%11=10,产生冲突,对下标10分别加上{1,-1,4,-4}寻找空位,下标11处已有元素54,考虑另一个下标9,发现此处无元素,因此,65存储在下标9处。
(3)、H(65)=10,发现下标为10处的元素为65,再对下标10加上以下序列{1,-1,4,-4...}查找目标关键字65,下标11处不等于65,再判断下标为9处元素等于65。因此查找关键字65需依次与32,54,65进行比较。
(4)、建立与哈希表同等大小的flag数组,初始值全部为false,然后根据哈希表已存储的元素,将其对应于flag数组处的元素置为true,例如:关键字22在哈希表的下标为0,将flag[0]=true,关键字12的下标为1,将flag[1]=true,以此类推。然后查找关键字54的下标,H(54)=10,发现下标为10处的元素为32,再找到下标为11的元素,该元素为54,令flag[11]=false即实现删除元素54。