public HeapSort(HeapSortKind kind, IComparer <T> comparer) { m_comparer = comparer ?? throw new ArgumentNullException(nameof(comparer)); switch (kind) { case HeapSortKind.HeapifyDown: m_sort = HeapifyDown; break; case HeapSortKind.HeapifyUp: m_sort = HeapifyUp; break; default: throw new ArgumentOutOfRangeException(nameof(kind)); } }
public HeapSort(HeapSortKind kind) : this(kind, Comparer <T> .Default) { }