ContainsKey 和 TryGetValue 的性能如何?
我正在准备面试,一些明显的面试问题(例如计算字符串中字符的频率)涉及将所有字符放入哈希表/字典中,以获得算法的 O(n) 运行时间。我的问题是,使用 ContainsKey
和 TryGetValue
检查键是否已插入哈希表对性能有何影响?对于此类使用 ContainsKey
或 TryGetValue
的问题,我还能使用 O(n) 算法吗?
I'm prepping for interviews, and some obvious interview questions such as counting frequency of characters in a string involve putting all of the characters into a Hashtable/Dictionary in order to get O(n) runtime for the algorithm. My question is, what is the performance hit by using ContainsKey
and TryGetValue
to check to see if a key has already been inserted into the Hashtable? Can I still have an O(n) algorithm for problems like these that use ContainsKey
or TryGetValue
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设哈希值良好且没有太多冲突,则每个操作都是 O(1) 操作。
至于这些操作是如何工作的......我建议您阅读哈希表。
Assuming a good hash without too many collisions, each of those are O(1) operations.
As for how those operations work... I suggest you read up on hash tables.