ate*_*tor 8 sorting algorithm performance numbers list
我正在开展一个大项目,我不打算在这里总结一下,但是这个项目的部分是采用一个非常大的文本文档(最少约50,000个单词(不是唯一的)),并输出每个独特的按照最常用的顺序排列的单词(可能排在前三位的是"a""an"和"the").
我的问题当然是,最好的排序算法是什么?我正在阅读计数排序,我喜欢它,但我担心的是,与独特单词的数量相比,值的范围会太大.
有什么建议?
Igo*_*kon 14
首先,您需要一个单词地图 - > count.50,000字不多 - 它很容易适合记忆,所以没什么好担心的.在C++中,您可以使用标准STL std :: map.
然后,一旦有了地图,就可以将所有地图键复制到矢量中.
然后,使用自定义比较运算符对此向量进行排序:不是比较单词,而是比较地图中的计数.(不要担心特定的排序算法 - 您的数组不是那么大,因此任何标准库排序都适合您.)