Show / Hide Table of Contents

    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
    Object
    OrderedHashSet<T>
    Namespace: Advanced.Algorithms.DataStructures.Foundation
    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
    public OrderedHashSet()

    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
    Type Description
    Int32

    Item[Int32]

    Time complexity: O(log(n))

    Declaration
    public T this[int index] { get; }
    Parameters
    Type Name Description
    Int32 index
    Property Value
    Type Description
    T

    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
    public int Add(T key)
    Parameters
    Type Name Description
    T key
    Returns
    Type Description
    Int32

    AsEnumerableDesc()

    Descending enumerable.

    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
    Type Description
    T

    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
    Type Description
    Int32

    Max()

    Time complexity: O(log(n)).

    Declaration
    public T Max()
    Returns
    Type Description
    T

    Min()

    Time complexity: O(log(n)).

    Declaration
    public T Min()
    Returns
    Type Description
    T

    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
    public int Remove(T key)
    Parameters
    Type Name Description
    T key
    Returns
    Type Description
    Int32

    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
    Type Description
    T
    Back to top Generated by DocFX