我正在做作业......而且我发现我的代码比同学的工作速度慢。
花一些时间看看我们的代码之间有什么不同,我发现我的加载文件比他的工作慢得多。他使用正则表达式来解析字符串
可以在这里下载buckets.in和家庭作业规范 http://cial.csie.ncku.edu.tw/course/2013_Fall_Programming/download/hw4.rar
这是我的原始代码 http://codepad.org/7atC1hY9
我的代码用我同学的输入法 http://codepad.org/jNfqr5Mc
见第94行
//Parse it with space
char *p=strtok(buffer, " ");
while(p!=NULL){
if(*p!='\n'&&*p!='\0')
buckets[count].data[buckets[count].N++]=atoi(p);
p=strtok(NULL, " ");
}
VS
for(;sscanf(buffer, "%d %[1234567890 ]", &buckets[count].data[buckets[count].N], buffer)>1;buckets[count].N++);
这是我同学的代码http://codepad.org/MMI18Dlz
此外,似乎他没有做任何改进铲斗映射性能的事情,但它比我的运行速度快得多。 (也许n太小了......)