2003年中程下午题疑问

li98350 2004-03-08 10:04:26
[算法说明]
某英汉词典文件包含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 -->__(1)__; 若E > ENG(K),则K+1 -->__(2)__
(4)若H<L则
对I = N,L,-1(始值,终值,增量)循环执行:
ENG(I) --> ENG(I+1)
CN(I) -->CN(I+1)
然后,将E和C分别存入__(3)__和__(4)__,N+1 --> N 最后转向第二步
否则,转向___(5)___
第四步 将数组ENG和CN输出,形成新的英汉词典文件,算法结束.
----------------------------------------------------------------
兄弟做出的(3)、(4)是(3) ENG(L) 或 ENG(I)、(4)CN(L) 或 CN(I)
答案是:(3)ENG(L) 或 ENG(I+1)、(4)CN(L) 或 CN(I+1)
为啥是I+1?哪位大哥给分析一下?谢谢啦!

...全文
27 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

2,948

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧