2009 英特尔® 线程挑战赛 第三题 搜索!

denghui0815 2009-05-12 07:01:21
第三个问题现已发布。您可以在 2009 年 5 月 22 日之前提交作品。请参见竞赛规则了解更多信息或者访问竞赛论坛寻求问题解答。祝您好运!

搜索

问题描述:写一个线程程序在一个线性存储且有序的唯一关键字集合中搜索给定关键字集合的所在位置。关键字是由15个字符组成的字符串,第一个输入文本文件包含有序关键字集合。第二个输入文本文件包含不定数量的关键字,这些关键字将在第一个文件中的关键字集合里进行查询。对于第二个输入文件中的每一个关键字在输出文件中都应该有对应的单行输出,输出信息包括关键字以及其在第一个文件中的下标,下标从0开始。如果待搜索关键字不在第一个文件中,那么将在输出文件中打印没有找到的信息。程序所涉及到的文件名(包括关键字集合文件,待搜索关键字集合文件,输出文件)将在命令行中给出。


文件格式:第一个输入文件的第一行是一个整数,代表文件中有序关键字集合的关键字数量(这里用N表示)。接下来存储的就是N行有序的关键字,每个关键字是15个字符的字符串。第二个文件包括待查询的不定数量的关键字集合,关键字同样是15字符的字符串,每行存储一个关键字。




输出文件应当与第二个输入文件有相同的输出行数。对于第二个文件中列出的每个关键字,在输出文件中都有对应的一行输出信息表明待搜索关键字以及在第一个文件中的下标或者未找到的信息。

输入文件样例 (data.txt):
10
123456789012345
AABBCCDDEEFFGGH
MMNNNNNNNNNNNNN
MMNNNNNNNNNNNNO
NNNNNNNNNN12345
NNNNNNNNNN12346
This is a key22
aabbCCDDEEFFGGh
mMNNNNNNNNNNNNN
not the lastkey


输入文件样例 (keysearch.txt):
MMNNNNNNNNNNNNN
NOT the lastkey
mMNNNNNNNNNNNNN
AABBCCDDEEFFGGH
AABBCCDDEEFFGG0

命令行样例:

> mysearch.exe data.txt keysearch.txt results.txt

输出文件样例 (results.txt):
MMNNNNNNNNNNNNN is found at index 2
NOT the lastkey is NOT FOUND
mMNNNNNNNNNNNNN is found at index 8
AABBCCDDEEFFGGH is found at index 1
AABBCCDDEEFFGG0 in NOT FOUND

限制条件:第一个输入文件中要搜索的数据,必须首先被读入一个一维数组,数组中每个元素包含一个关键字。下面的伪代码说明了一个可能的输入算法。

readfile(inputFD, &N);
for i = 0, N-1 {
A[i] = getkey(inputFD);
}

计时:如果你把计时代码放入你的应用程序中来对第二个文件关键字的输入,搜索和输出过程进行计时,然后打印所花时间,这个时间将用于计分。如果没有添加计时代码,整个执行时间(包括输入和输出的时间)将用于计分。如果没有遵循输入数据和存储的输入限制,整个执行时间将用于计分。


注:按照竞赛规则,参赛者除了提交解决方案代码之外,同时还需要提交其解决方案报告
...全文
326 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
haojn 2009-05-22
  • 打赏
  • 举报
回复
看起来这道题很依赖数据分布啊
haojn 2009-05-22
  • 打赏
  • 举报
回复
现在发现这道题完全取决于I/O。。。
denghui0815 2009-05-21
  • 打赏
  • 举报
回复
恭喜佳男 第二题你拿到了冠军 :)
haojn 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 denghui0815 的回复:]
拿了i7也没法用啊 我的主板不支持 :P
[/Quote]
上回得了Q6600,我就借机买了个主板。。。
denghui0815 2009-05-21
  • 打赏
  • 举报
回复
拿了i7也没法用啊 我的主板不支持 :P
haojn 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 denghui0815 的回复:]
恭喜佳男 第二题你拿到了冠军 :)
[/Quote]
谢谢!恭喜你得到core i7!呵呵!
denghui0815 2009-05-18
  • 打赏
  • 举报
回复
得加油了 没几天了啊 第4题又来了
haojn 2009-05-18
  • 打赏
  • 举报
回复
嗯,去年至少能知道总分。其实我觉得每个人分数都应该公开的,还有评测的具体分数。

第三题我还没写呢
denghui0815 2009-05-18
  • 打赏
  • 举报
回复
我现在都还不知道自己的得分 感觉这方面没有去年做到好啊
haojn 2009-05-18
  • 打赏
  • 举报
回复
是啊。可惜也不能知道自己每部分的得分
denghui0815 2009-05-17
  • 打赏
  • 举报
回复
文档很重要啊 50分呢
haojn 2009-05-16
  • 打赏
  • 举报
回复
我文档写得没那么好,估计分数不会很高。太忙了,只能抽时间做了
denghui0815 2009-05-15
  • 打赏
  • 举报
回复
谢谢! :)
接下来加油哦, 第2题我看好你
haojn 2009-05-15
  • 打赏
  • 举报
回复
先cong一下第一题的奖,呵呵

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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