阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 某系统中有N个等长的数据记录,其主键值为随机排序且互不相等的正整数编号,表示为K(0),K(1),…,K(N-1)。现采用杂凑法将各数据记录存入区域S(0),S(1)

admin2021-03-24  36

问题 阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。
【说明】
    某系统中有N个等长的数据记录,其主键值为随机排序且互不相等的正整数编号,表示为K(0),K(1),…,K(N-1)。现采用杂凑法将各数据记录存入区域S(0),S(1),S(2),…,S(M-1)中(M≥N),以加快按主键值检索的效率(初始时各区域都是空的)。
    下面流程图中,选用适当的质数P(N≤P≤M),对每个主键值先计算出它除以P的余数j。如果区域S(j)己占用,则考查下一个区域S(j+1),……,直到发现某个区域为空时,则将该主键值相应的数据记录存入该区域(注意,S(M-1)的下一个区域是S(0))。为了标记每个区域是否己占用,采用了M个标记位F(0),F(1),…,F(M-1)。初始时所有的标记位都为0,每当一个区域被占用时,将相应的标记位置1。
    例如,设6个记录的主键值分别为31、15、20、35、18、10,取质数P=7,用上述杂凑法将这些记录存入区域S(0)~S(7)后,各区域中记录的主键值依次为35、15、空、31、18、10、20、空。
【流程图】
         
注1:“循环开始”框内给出循环控制变量的初值、终值和增值(默认为1),
     格式为:循环控制变量=初值,终值[,增值]
注2:函数int(x)为取x的整数部分,即不超过x的最大整数。

选项

答案(1)K(i)/P或等效形式 (2)0 (3)1→F(j)或F(j)=1或等效形式 (4)j+1→或j=j+1或j++或等效形式 (5)0→j或j=0或等效形式

解析 杂凑法是大数据处理时常用的数据存储检索方法,其检索效率很高。
    本流程图中,将依靠循环i=0,1,…,N-1,依次将主键值为K(i)的记录存入适当的区域S(j)中。
    首先,需要求出K(i)除以质数P的余数j,采用的方法是计算K(i)-P*int(K(i)/P)。例如,对于P=7,31/7的商的整数部分为4,所以31除以7的余数为31一7×4=3。因此流程图中的空(1)应填写K(i)/P或其等效形式。
    然后判断区域S(j)的标志位F(j)是否为0,即空(2)应填写0。
    如果F(j)=0则表示区域S(j)为空,可以将K(i)直接存入区域S(j)中,并将F(j)置1表示己被占用,即空(3)应填写1→F(i)。
    如果’F(j)非0,则表示S(0)己占用,需要考虑下一个区域是否为空。也就是说,需要将j增1,即空(4)应填写j+1→j。如果j增1后己超越最后一个区域,则需要考虑返回区域S(0)。也就是说,当j=M时,需要执行0→j,即空(5)应填写0→j。
转载请注明原文地址:https://jikaoti.com/ti/w8W7FFFM
0

相关试题推荐
最新回复(0)