题目
7 已知查找表中有400个元素,查找元素概率相同。采用分块查找法且均匀分块。若采用顺序查找法确定元素所在块,且块内也采用顺序查找法,为效率最高,每块包含元素应为()。A. 8B. 10C. 20D. 25
7 已知查找表中有400个元素,查找元素概率相同。采用分块查找法且均匀分块。若采用顺序查找法确定元素所在块,且块内也采用顺序查找法,为效率最高,每块包含元素应为()。
A. 8
B. 10
C. 20
D. 25
题目解答
答案
C. 20
解析
分块查找法的效率取决于块的大小。块太大时,块间查找次数增加;块太小则块内查找次数增加。核心思路是找到块大小$s$,使得总平均查找次数最小。总平均次数由块间和块内查找次数组成,需通过数学推导找到最优解。
设总元素数$n=400$,每块包含$s$个元素,则块数$b=\frac{400}{s}$。
- 块间查找平均次数:顺序查找块,平均次数为$\frac{b+1}{2} = \frac{400/s + 1}{2}$。
- 块内查找平均次数:顺序查找块内元素,平均次数为$\frac{s+1}{2}$。
- 总平均次数:两者相加,得:
$T(s) = \frac{400/s + 1}{2} + \frac{s+1}{2} = \frac{200}{s} + \frac{s}{2} + 1$ - 求导找极值:对$T(s)$求导并令导数为0:
$T'(s) = -\frac{200}{s^2} + \frac{1}{2} = 0 \implies s^2 = 400 \implies s = 20$
因此,每块包含20个元素时效率最高。