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."), }; }
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); } }