Class OrderedHashSet<T>
A sorted HashSet implementation using balanced binary search tree. IEnumerable will enumerate in sorted order.
This may be better than regular HashSet implementation which can give o(K) in worst case (but O(1) amortized when collisions K is avoided).
Inheritance
OrderedHashSet<T>
Assembly: Advanced.Algorithms.dll
Syntax
public class OrderedHashSet<T> : IEnumerable<T> where T : IComparable
Type Parameters
Name |
Description |
T |
The value datatype.
|
Constructors
OrderedHashSet()
Declaration
OrderedHashSet(IEnumerable<T>)
Initialize the sorted hashset with given sorted key collection.
Time complexity: log(n).
Declaration
public OrderedHashSet(IEnumerable<T> sortedKeys)
Parameters
Type |
Name |
Description |
IEnumerable<T> |
sortedKeys |
|
Properties
Count
Declaration
public int Count { get; }
Property Value
Item[Int32]
Time complexity: O(log(n))
Declaration
public T this[int index] { get; }
Parameters
Type |
Name |
Description |
Int32 |
index |
|
Property Value
Methods
Add(T)
Add a new key.
Time complexity: O(log(n)).
Returns the position (index) of the key in sorted order of this OrderedHashSet.
Declaration
Parameters
Type |
Name |
Description |
T |
key |
|
Returns
AsEnumerableDesc()
Declaration
public IEnumerable<T> AsEnumerableDesc()
Returns
Type |
Description |
IEnumerable<T> |
|
Contains(T)
Does this hash table contains the given value.
Time complexity: O(log(n)).
Declaration
public bool Contains(T value)
Parameters
Type |
Name |
Description |
T |
value |
The value to check.
|
Returns
Type |
Description |
Boolean |
True if this hashset contains the given value.
|
ElementAt(Int32)
Time complexity: O(log(n))
Declaration
public T ElementAt(int index)
Parameters
Type |
Name |
Description |
Int32 |
index |
|
Returns
GetEnumerator()
Declaration
public IEnumerator<T> GetEnumerator()
Returns
Type |
Description |
IEnumerator<T> |
|
GetEnumeratorDesc()
Declaration
public IEnumerator<T> GetEnumeratorDesc()
Returns
Type |
Description |
IEnumerator<T> |
|
IndexOf(T)
Time complexity: O(log(n))
Declaration
public int IndexOf(T key)
Parameters
Type |
Name |
Description |
T |
key |
|
Returns
Max()
Time complexity: O(log(n)).
Declaration
Returns
Min()
Time complexity: O(log(n)).
Declaration
Returns
NextHigher(T)
Return the next higher value after given value in this hashset.
Time complexity: O(log(n)).
Declaration
public T NextHigher(T value)
Parameters
Type |
Name |
Description |
T |
value |
|
Returns
Type |
Description |
T |
Null if the given value does'nt exist or next value does'nt exist.
|
NextLower(T)
Return the next lower value before given value in this HashSet.
Time complexity: O(log(n)).
Declaration
public T NextLower(T value)
Parameters
Type |
Name |
Description |
T |
value |
|
Returns
Type |
Description |
T |
Null if the given value does'nt exist or previous value does'nt exist.
|
Remove(T)
Remove the given key if present.
Time complexity: O(log(n)).
Returns the position (index) of the removed key if removed. Otherwise returns -1.
Declaration
Parameters
Type |
Name |
Description |
T |
key |
|
Returns
RemoveAt(Int32)
Remove the element at given index.
Time complexity: O(log(n)).
Declaration
public T RemoveAt(int index)
Parameters
Type |
Name |
Description |
Int32 |
index |
|
Returns