选择题 9.  一个文件包含了200个记录,若采用分块查找法,每块长度为4,则平均查找长度为______。
【正确答案】 B
【答案解析】 分块查找是折半查找和顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内结点没有排序要求,因此,它特别适合于结点动态变化的情况。
   对于分块查找的平均查找长度,通常由两部分组成,一个是对索引表进行查找的平均查找长度,一个是对块内结点进行查找的平均查找长度。假设线性表中共有n个结点,分成大小相等的b块,每块有s=n/b个结点。假定查找索引表采用顺序查找,只考虑查找成功的情况,并假定对每个结点的查找概率是相等的,则其平均查找长度ASL=(b+1)/2+(s+1)/2;假设索引表中采用折半查找,则其平均查找长度ASL=(s+1)/2+log2(b+1)-1。
   本题中,s=200/4=50,b=4,所以,其平均查找长度ASL=(200/4+4)/2+1=28,选项B正确。
   所以,本题答案为B。
   引申:有一个2000项的表,采用等分区间顺序查找的分块查找法,问:
   1)每块的理想长度是多少?
   2)分成多少块最为理想?
   3)平均查找长度是多少?
   4)若每块是20,ASL是多少?求详解。
   分块查找的平均查找长度包括索引表和分块内的两部分之和,即索引表+块中。
   假设线性表长n,均匀分成m块,每块中记录个数s,则(其中