出于好奇。假设我有一个包含N个元素(将重复)的列表和一个将返回这些元素频率的函数。我认为这个程序的时间复杂度应该是O(N)对吗?因为函数只需要遍历N并检查元素是否已经存在,如果是,+ =,else = 1.好的,所以我的朋友和我有一个参数,如果我们需要多个元素如何它的频率也是?也许除以总数?我的朋友认为复杂性应该是O(N ^ 2),但这听起来不适合我。你怎么想,为什么?
谢谢。
答案 0 :(得分:0)
这取决于您将如何记录频率。如果你将使用一个数组,他们每个+ =你需要先找到先前的频率值,复杂性是二次的。但是,如果您维护一个哈希表结构,平均访问是即时的,那么复杂性就是线性的。