[求助]在5万个长3k的字符串中快速定位定长字符串



QUOTE:
原帖由 galaxy001 于 2007-9-23 13:54 发表
搜一个要307s,刨掉tie文件的时间,也不行啊。

$-[0]是哪的用法?我翻大骆驼找到file::handle去了。

你可以查看一下perlvar 去
你的C代码是直接边读文件编搜索吗?
看上去是的。
请改为双参数的,即patten file。
我准备直接用``在perl中调用。

话说,你好像是把input_DNA写死了,连处理agrv的例子都没留……


QUOTE:
原帖由 galaxy001 于 2007-9-26 14:30 发表
你的C代码是直接边读文件编搜索吗?
看上去是的。
请改为双参数的,即patten file。
我准备直接用``在perl中调用。

话说,你好像是把input_DNA写死了,连处理agrv的例子都没留……

边读边搜.
Ok, 依然更新在16楼了 (毕竟这个要编译再运行, hard code便于我debug...)

顺便问: 这个在你机器上的耗时几何?

建议楼主用GREP来实现.
2.27-2.31s
str[4096]竟然有段错误,我加到40960通过。
gcc c.c -o fcc -O2 -march=nocona -pipe
用perl循环10次得2.27s。
看来读文件是不会快过内存的,只有全面用C才快。


QUOTE:
原帖由 galaxy001 于 2007-9-26 21:10 发表
2.27-2.31s
str[4096]竟然有段错误,我加到40960通过。
gcc c.c -o fcc -O2 -march=nocona -pipe
用perl循环10次得2.27s。
看来读文件是不会快过内存的,只有全面用C才快。

饿, 我是按你说的每组3K大约, 来估的4096

毕竟C/C++和Perl的用途是完全不同的...