//=======================开始干之前=======================
模块
Word Set 词表。
Seek Files 搜索文件。
Parse Files 分词记录。
Sort and Print 排序打印。
打算用C++写预计8个小时能写完吧
//=======================开始干之后=======================
用C# .NET 各种方便,就用C#了。
Word Set 词表。1分钟。。
Seek Files 搜索文件。C#有Directory,又5分钟。
Parse Files 分词记录。C#有splitter,又5分钟,扩展模式写一写,大小写不敏感比较单词写一写、调一调速度(string的compareTo()貌似特慢),3个小时过去了……
Sort and Print 排序打印。C#有sort(),先试试,又5分钟。。。
//=======================提高性能=======================
我说用二叉树保存词表,然后当时我不知道SortedDictionary是二叉搜索树,于是自己写了一个巨简单二叉树。
大小写不敏感比较写史了,调了半天。
最后用归并排序……归并一开始写史了, 调了半天。
一共好像花了5、6个小时。

//=======================后来=======================
后来听安然说:
1.二叉树难平衡,给跪。
2.词表可以无序,用hash存,给跪。
3.快排比其他排序快1倍,给跪。我说快排碰到频率相同的还要比较字典序,词表有序归并是稳定的就不用比较...但是仔细想了想,二叉树插入的时候比较次数已经至少nlogn了,这个……
//=======================学习=======================
1.要知道有个东西叫哈希,C#里Dctionary是哈希的。
2.别碰到东西就想自己写,木达大!学学找找总会有的!
3.快排真的很快……
浙公网安备 33010602011771号