Реализовать Быструю сортировку (Quicksort) для строк

Рейтинг: 0Ответов: 1Опубликовано: 24.03.2015

Дан какой-то массив, например, из 50-ти строк. Как его отсортировать методом "Быстрой сортировки" по длине строки?

Ответы

▲ 1
using System;
using System.Linq;

namespace Quicksort
{
    class Program
    {
        static string[] Quicksort(string[] s)
        {
            if (s.Length < 2) { return s; }
            int p = s[0].Length;
            return Quicksort(s.Where(x => x.Length < p).ToArray())
                .Concat(s.Where(x => x.Length == p))
                .Concat(Quicksort(s.Where(x => x.Length > p).ToArray()))
                .ToArray();
        }

        static void Main()
        {
            foreach (string s in Quicksort(Console.ReadLine().Split().ToArray()))
            {
                Console.WriteLine(s);
            }
        }
    }
}