.NET 4.x Алгоритм сортировки слиянием - C#

Узнай цену своей работы

Формулировка задачи:

Ребятки помоги! Понять что здесь не так:
public static IEnumerable<T> MSort<T>(this IEnumerable<T> list) where T : IComparable<T>
        {
            if (!list.Any()) return Enumerable.Empty<T>();
            Int32 begin = 0;
            Int32 end = list.Count();
            Int32 middle = (begin + end) / 2;
            IEnumerable<T> first = list.Skip(begin)
                .Where(item => middle + 1 > end - 1 || (begin <= middle + 1 && BooleanFunctions<T, Boolean>
                .Less(list.ElementAt(begin), list.ElementAt(middle + 1))));
            IEnumerable<T> second = list.Skip(middle + 1)
                .Where(item => middle + 1 > end - 1 || (begin <= middle + 1 && BooleanFunctions<T, Boolean>
                .Less(list.ElementAt(middle + 1), list.ElementAt(end - 1))));
            return first.Concat(second);
        }
это работает, код может просмотреть коллекцию, только не могу понять почему не сортируется коллекция.

Решение задачи: «.NET 4.x Алгоритм сортировки слиянием»

textual
Листинг программы
return first.Concat(second).OrderBy(u=>u.Name); // Name замени на имя поля, по которому сортировать.

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы