Пример #1
0
        public MergeSort(MergeSortKind kind, IComparer <T> comparer)
        {
            m_comparer = comparer ?? throw new ArgumentNullException(nameof(comparer));
            switch (kind)
            {
            case MergeSortKind.NonRecursive:
                m_sort = NonRecursive;
                break;

            case MergeSortKind.CopyFirstRecursive:
                m_sort = CopyFirstRecursive;
                break;

            case MergeSortKind.Recursive:
                m_sort = Recursive;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(kind));
            }
        }
Пример #2
0
 public MergeSort(MergeSortKind kind)
     : this(kind, Comparer <T> .Default)
 {
 }