SortedDictionary是否自动排序?

时间:2009-03-11 15:28:02

标签: c#

我从未使用过SortedDictionary,只是好奇当你为它添加值时,例如,在for循环中,这些值在你添加它们时会自动排序,或者你必须在添加它们之后对它们进行排序

3 个答案:

答案 0 :(得分:6)

这是自动完成的。字典的结构必须经过排序才能正常运行。

答案 1 :(得分:4)

是。 Microsoft讨论了SortedDictionary here

来自该页面的几个引号表明排序是自动进行的:

  

“The SortedDictionary<(Of<(TKey,   TValue>)>)泛型类是二进制的   搜索树与O(log n)检索,   其中n是元素的数量   字典。“

O(log n)查找表明(通常)我们在某个树中通过二分搜索寻找匹配。

  

“SortedDictionary<(Of<(TKey,   TValue>)>)具有更快的插入和   未排序数据的删除操作:   O(log n)而不是O(n)   SortedList<(Of<(TKey,TValue>)>)。“

再次,O(log n)用于插入,因为它必须遍历结构才能找到插入点。

好玩。

答案 2 :(得分:2)

按排序顺序是SortedDictionary的不变量,因此您永远不需要对其进行显式排序。