Sunday, April 29, 2012

输入输出效率分析

请先看这篇博文,注意字符串的读入方式:http://jim-think.blogspot.com/2011/10/contact.html
在USACO平台上,上面博文中的代码运行最长运行时间~0.4s

在同学的启发下,本人修改了读入部分,换成了如下代码:

1 char c;
2 while(!feof(stdin))
3 {
4     c = getchar();
5     if(c == '0')    str[len ++] = 0;
6     else if(c == '1')    str[len ++] = 1;
7 }

重新提交,结果如下:
   Test 1: TEST OK [0.000 secs, 11992 KB]
   Test 2: TEST OK [0.000 secs, 11992 KB]
   Test 3: TEST OK [0.000 secs, 11992 KB]
   Test 4: TEST OK [0.000 secs, 11992 KB]
   Test 5: TEST OK [0.022 secs, 11992 KB]
   Test 6: TEST OK [0.022 secs, 11992 KB]
   Test 7: TEST OK [0.022 secs, 11992 KB]
程序运行时间大大缩短!
可见,strcat的效率十分低下。
In conclusion,选择合适的输入输出方式避免时间浪费。

No comments:

Post a Comment