软件水平考试

【算法说明】某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文

来源:网考网软件水平 所有评论

【分析解答题】【算法说明】 某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。 本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。 【算法】 第一步 读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。 第二步 输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。 第三步 根据变量E的值,用二分法在数组ENG中查找。具体步骤如下: 1.1→L,N→H 2.INT((L+H)/2)→K 3.若E=ENG(K),则C→CN(K),转向第二步 若E<ENG(K),则K-1→{{U}} (1) {{/U}};若E>ENG(K),则K+1→{{U}} (2) {{/U}} 4.若H<L则 对I=N,L,-1(始值,终值,增量)循环执行:ENG(I)→ENG(I+1)CN(I)→CN(I+1) 然后,将E和C分别存入{{U}} (3) {{/U}}和{{U}} (4) {{/U}},N+1→N最后转向第二步 否则,转向{{U}} (5) {{/U}} 第四步 将数组ENG和CN输出,形成新的英汉词典文件,算法结束。
网考网解析:
试题答案: 答案解析:H (2)L (3)ENG(L)或等价表达式 (4)CN(L)或等价表达式 (5)(2) [解析] H,L分别是二分法查找的上界和下界,所以(1)和(2)应分别填入H,L。(3)和(4)处是将L之后的元素依次后移以后,将E和C分别存入L处,所以(3)和(4)处应分别填入ENG(L)和CN(L)或其他等价表达式,比如ENG(H+1)。(5)处是H>L,这说明查找表未空,需要转向(2)继续查找。 document.getElementById("warp").style.display="none"; document.getElementById("content").style.display="block"; 查看试题解析出处>>

相关推荐

发布评论 查看全部评论