MSDN states the following SortedSet(T).Add Method :
If Count is less than the capacity of the internal array, this method is an O(1) operation.
Could someone please explain "how so"? I mean when adding new value we need to find a correct place to add a value (comparing it with another values) and internal implementation looks like a "Red-Black tree" with O (log N) insertion complexity.
SortedList provides O(log n) time complexity for KeyValuePair retrieval. Unlike SortedDictionary that is implemented with Binary Search Tree, SortedList is implemented with two internal arrays for keys and values. Therefore, insertion operation and removal operation take O(n), which are slower than SortedDictionary.
In C#, SortedSet is a collection of objects in sorted order. It is of the generic type collection and defined under System. Collections. Generic namespace. It also provides many mathematical set operations, such as intersection, union, and difference.
A set is used to provide a particular ordering on its element. The elements are ordered either by using a natural ordering or by using a Comparator. All the elements which are inserted into a sorted set must implement the Comparable interface. The set's iterator will traverse the set in an ascending order.
A SortedSet is a Set that maintains its elements in ascending order, sorted according to the elements' natural ordering or according to a Comparator provided at SortedSet creation time.
The comment is simply wrong. Yes, it is a red-black tree, O(log(n)) for inserts. Taking a look with Reflector bears this out, the private AddIfNotPresent() method contains a while() loop to find the insertion point, using normal red-black node traversal.
This doc bug has already been submitted by you-know-who.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With