1.2011 42

2.2012 9

3.2013 10

4.2013 42

5.2014 9

6.2015 7
(中序遍历必须有序的)

7.2016 9

8.2016 10

B+树有水平方向的指针,支持顺序查找;
B树没有水平方向的指针,要进行回溯才能进行进行查找。
9.2018 8


10.2020 10

11.2011 9

12.2015 8

13.2019 9

14.2018 9

15.2019 8

16.KMP 求next[]和nextval[]的解法:

若开头两个ne元素为-1,0,做法就是将原来的ne[]整体减1.
求nextval[]例题:

17.二次探测再散列


49%11=5,此时发生冲突,按二次探测法:
1.(5+1^2)%14=6 冲突
2.(5-1^2)%14=4 冲突
3.(5+2^2)%14=9 不冲突
4.(5-2^2)%14=1 (如有必要)
选D
18.哈希函数例题:
例: 给定关键字序列11,78,10,1,3,2,4,21,试分别用顺序查找、二分查找、二叉排序树查找、哈希查找(用线性探查法和拉链法)来实现查找,画出它们的对应存储形式(顺序查找的顺序表,二分查找的判定树,二叉排序树查找的二叉排序树及两种哈希查找的哈希表),并求出每一种查找成功的平均查找长度。哈希函数H(k)=k%11。
1.顺序查找的顺序表(一维数组)

ASL=1+2+3+4+5+6+7+88\frac{1+2+3+4+5+6+7+8}{8}81+2+3+4+5+6+7+8=4.5;
2.二分查找的判定树(中序序列为从小到大排列的有序序列)

ASL=1+2∗2+3∗4+48\frac{1+2*2+3*4+4}{8}81+2∗2+3∗4+4=2.625;
3.二叉排序树(关键字顺序已确定,该二叉排序树应唯一)

ASL=1+2∗2+3∗2+4+5∗28\frac{1+2*2+3*2+4+5*2}{8}81+2∗2+3∗2+4+5∗2=3.125;
4.线性探查法

ASL=1+1+2+1+3+2+1+88\frac{1+1+2+1+3+2+1+8}{8}81+1+2+1+3+2+1+8=2.375;
5.拉链法

ASL=1∗6+2∗28\frac{1*6+2*2}{8}81∗6+2∗2=1.25;
19.分块查找
设有n个元素,分为k块,每块元素有n个,则:
ASL=s2+2s+n2s\frac{s^2+2s+n}{2s}2ss2+2s+n=6.5
20.哈希线性探测总次数

1666

被折叠的 条评论
为什么被折叠?



