第一次作业词频分析之李嘉良篇

感觉程序比较简单,所以没有写好多类,只是在一个类里写了几个方法。

类里边有四个属性,mode(记录词频的模式),rec[](记录词的string数组),amo[](记录词的数量),sum(记录词的数量)。

七个方法,一个Main入口,SerchFile(),GetWords(),Record(),Sort(),Combine(),WriteFile()六个方法。

预计用时5小时,实际用时3.5小时。



SerchFile()现成的类Directory和FileSystemInfo,10分钟。

GetWords()现成的StreamWriter和Split,10分钟。

Record()判断一下词是否重复,非常简单的算法,10分钟。

Sort()非常蠢自己手打了个排序,效率有点低,但是由于刚开始的时候习惯性的开数组,所以没什么好用的方法,20分钟。

Combine()Ext模式下同类词的合并,算法比较简单粗暴,O(n)的,10分钟。

WriteFile()没什么意思了,StreamWriter,时间忽略不计。



大部分的时间用在完成后的各种修改上,整理代码,优化一些小地方,四处看看别人的代码,看到了一些我没想到的东西就 改一改自己代码,玩一玩性能分析,今天下午临时改了需求分析,顺便改一改。



第一次测试,只搜集到13个样例,时间在1.8s左右,这东西每次有一定的随机性,手打排序果然太弱了。



第二次找了一个超大的样例,结果函数调用就不大搞得懂了,求大神指教。



另外有个问题,这个性能测试是不是随机收集数据的呢?每次用同样的目录搜集的样本数并不一样。



这个项目是用C#写出来的,C#这个语言就是需要一个熟练度,丰富的类和函数需要多用才能知道,多写一些多了解一些现成的类的使用,就能够更好的运用这个语言。

另外,我的面向对象思想太弱了,写出来的东西基本没有面向对象的概念。



经过各种修改需求和确定题意,终于算是收工了。

更新一下测试样例

1、空文件夹

2、隐藏文件夹

3、不同大小写的词

4、尾缀各种数字、字母的词

5、自己程序的.cs文件

6、超多层子目录

7、超多符号测试

8、开头三个字符字母、数字混杂

9、全套工程文件

10、超大样本,总大小2G,混杂很多不同类型的文件

posted @ 2012-10-09 23:01  WWW.TeamWork  阅读(285)  评论(0编辑  收藏  举报