如何有效地从C#中提取元素;s排序词典
本文关键字:排序 元素 提取 有效地 | 更新日期: 2023-09-27 18:23:43
从复杂度为O(lgn)而不是O(2lgn)的C#的SortedDictionary中获取与键关联的Value的标准C#实践是什么?我之所以这么问,是因为似乎每次你想提取一个值时,都需要首先调用ContainsKey来检查该键是否存在,这会给整体复杂性增加另一个lgn。在C++中,我可以调用.find(),并根据.end()检查它返回的指针,如果指针不等于.end(。那么,在C#中,除了使用O(lgn)复杂度之外,我还能做其他事情吗?谢谢
从C#的SortedDictionary中获得与复杂度为O(lgn)而不是O(2lgn)的键相关联的Value的标准C#实践是什么?
O(log(n))
等于O(2 * log(n))
,因此执行两次是O(log(n))。
也就是说,您可以使用TryGetValue
来获得一个值,如果一个值存在,则使用单程。
要进行单个查找,可以使用TryGetValue
。
object value;
if(dic.TryGetValue(key, out value))
{
}