来自MSDN:
SortedDictionary<TKey,TValue>
泛型类是二进制 搜索树与O(log n)检索,其中n是元素的数量 在字典中
来自MSDN:
使用密钥检索值非常快,接近O(1), 因为
Dictionary<TKey,TValue>
类是作为一个实现的 哈希表。
我的问题有两个:
O(log n)
和O(1)
;和Dictionary
(未排序)非常快?它需要更多的内存吗?答案 0 :(得分:2)
O(n)
是用于表示弱上限的符号。 O(log n)
表示操作需要大约log n步骤才能完成(这取决于输入的大小)。 O(1)
表示访问时间受常量限制,而不是输入的大小。
Dictionary类具有分摊的常量访问权限(但不一定能保证,因为它可能需要调整大小),因为SortedDictionary将保证访问时间为O(log n),因为它是从树构建的。
以下是哈希表的一个很好的介绍:hash tables