Dictionary.Keys返回的KeyCollection操作有多快? (.NET)
|
IDictionary<TK, TV>
定义方法IDictionary.ContainsKey(in TK)
和属性IDictionary.Keys
(类型ICollection
)。
我对这种方法的渐近性和ѭ0的Dictionary
实现中的属性感兴趣。
考虑定义
IDictionary<int, string> dict = new Dictionary<int, string>();
int k = new Random().Next();
并认为我们已经在字典中添加了dict
n
唯一KeyValuePair
s。
呼叫ѭ10的预期(渐近)复杂度是多少?我希望它在O(1)
中,但我在ѭ12documentation的文档中找不到它。
呼叫dict.Keys.Contains(k)
的预期(渐近)复杂度是多少?我希望它在ѭ11中,但在ѭ15和16的文档中都找不到。如果在ѭ11中,我不明白为什么IDictionary.Keys
属性的类型是ICollection
而不是ISet
(例如在Java中)。
没有找到相关结果
已邀请:
2 个回复
呕蹿尉
类型,
方法应为O(1): 此方法接近O(1)操作。
方法实际上调用父词典的
方法,因此也应为O(1): 此方法是O(1)操作。 (两个引号均来自相关文档页面的“备注”部分。)
链眷克袒姜
方法,则会在备注中看到相同的内容: 此方法是O(1)操作。