字数统计的效率

时间:2015-04-20 17:19:14

标签: performance sorting tree quicksort word

我被分配了开发一个简单的文本分析器的任务,它接收行作为输入并计算单词频率,然后打印按出现次数排序的单词,并在相同的频率内按字母顺序打印。我希望尽可能节省时间和空间,并试图找出哪种数据结构最好,与哪种排序算法结合。

现在,我有一个版本的quicksort,但这意味着在计算之后我的文字必须已经放在一个数组中。静态数组会在处理输入时立即为搜索操作提供时间复杂度O(n) - 所以我想利用其他结构(如平衡二叉树)进行处理,然后将其转换为数组。

我是否正确思考,或者将树变成阵列会损害我的效率?有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:0)

Mafalda,你可以使用插入排序和快速排序。 Quicksort可能是最好的方法。

您可以查看此链接why-is-quicksort-better-than-other-sorting-algorithms-in-practice

答案 1 :(得分:0)

假设您选择的编程语言相对有效,那么使用字母树(不是二叉树 - 扇出应该是字符集的大小)从FSM填充以存储计数可能是成本最低的解决方案