我从未使用过SortedDictionary,只是好奇当你为它添加值时,例如,在for循环中,这些值在你添加它们时会自动排序,或者你必须在添加它们之后对它们进行排序
答案 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
的不变量,因此您永远不需要对其进行显式排序。