Class SortedHashSet<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
SortedHashSet<T>
Assembly: Advanced.Algorithms.dll
Syntax
public class SortedHashSet<T> : IEnumerable<T> where T : IComparable
Type Parameters
| Name |
Description |
| T |
The value datatype.
|
Constructors
SortedHashSet()
Declaration
SortedHashSet(IEnumerable<T>)
Initialize the sorted hashset with given sorted key collection.
Time complexity: log(n).
Declaration
public SortedHashSet(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 value.
Time complexity: O(log(n)).
Declaration
Parameters
| Type |
Name |
Description |
| T |
value |
The value to add.
|
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> |
|
IndexOf(T)
Time complexity: O(log(n))
Declaration
public int IndexOf(T key)
Parameters
| Type |
Name |
Description |
| T |
key |
|
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 value.
Time complexity: O(log(n)).
Declaration
public bool Remove(T value)
Parameters
| Type |
Name |
Description |
| T |
value |
The value to remove.
|
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