描述最有效的MOST算法(在最坏的情况下为大O),以及所需的数据结构,以确定英语文本文档中可以在键盘上具有任意字符,大写或小写字母的字符的频率,以及最后打印(字符,频率)对。在最坏的情况下,您将算作什么操作,并给结果带来很大的时间。
答案 0 :(得分:0)
其中key = character和value = frequency的哈希图最适合任何类型的字符和编码。
如果只需要键盘可以产生的任何东西,也可以使用频率数组,其中F [字符ASCII码] = frequency。
两个解决方案的每次操作都具有恒定的O(1)运行时。
答案 1 :(得分:0)
最好使用大小等于256(总ascii字符)的数组。
最初,数组中的所有值均为0。从英文文本文档中读取字符时,我们可以简单地将等于给定字符的ascii值的index值递增。因此,这些操作可以在O(1)
时间复杂度下完成而没有任何开销(如果使用hashMap,则在最坏的情况下会有冲突的开销)。
由于我们必须遍历给定文本文档中的所有字符,因此所提出方法的总体时间复杂度为O(n)
,其中n是文本文档的长度。