public MergeSort(MergeSortType mergeSortType)
 {
     this._method = mergeSortType switch
     {
         MergeSortType.TopDown => this.TopDownSort,
         MergeSortType.BottomUp => this.BottomUpSort,
         _ => throw new NotImplementedException($"The merge sort type '{mergeSortType}' is not implemented."),
     };
 }
示例#2
0
        public static void Sort <T>(T[] a, MergeSortType type = MergeSortType.TopDown) where T : IComparable <T>
        {
            var aux = new T[a.Length];

            if (type == MergeSortType.TopDown)
            {
                SortTopDown(a, aux);
            }
            else
            {
                SortBottomUp(a, aux);
            }
        }