【发布时间】:2011-11-23 20:44:26
【问题描述】:
谁能解释以下Dictionary 方法的复杂性?
ContainsKey(key)
Add(key,value);
我正在尝试弄清楚我编写的方法的复杂性:
public void DistinctWords(String s)
{
Dictionary<string,string> d = new Dictionary<string,string>();
String[] splitted = s.split(" ");
foreach ( String ss in splitted)
{
if (!d.containskey(ss))
d.add(ss,null);
}
}
我假设这 2 个字典方法具有 log(n) 复杂性,其中 n 是字典中的键数。这是正确的吗?
【问题讨论】:
-
不,我相信
ContainsKey和Add在一般情况下都是常数时间。 编辑:您还应该查看HashSet。它可以更干净地完成您尝试使用Dictionary的操作。
标签: c# complexity-theory time-complexity