Сортировка массива по возрастанию числа одинаковых элементов - C#

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

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

Здравствуйте. Рандомно генерируется массив чисел, нужно отсортировать массив так, чтобы одинаковые элементы стояли рядом и группы одинаковых чисел шли по возрастанию количества элементов в них. К примеру если у нас есть массив -2 5 -2 5 5 3 1 4 1 -2 5, то на выходе должен быть вот такой 3 4 1 1 -2 -2 -2 5 5 5 5. Помогите реализовать.

Решение задачи: «Сортировка массива по возрастанию числа одинаковых элементов»

textual
Листинг программы
        static void Main(string[] args)
        {
 
            var array = new int[] {-2, 5, -2, 5, 5, 3, 1, 4, 1, -2, 5};
            Console.WriteLine(String.Join(" ", array));
 
            var result = new int[] {};
 
            array.GroupBy(x => x)
                .Select(y => new { Value = y.Key, Count = y.Count() })
                .OrderBy(z => z.Count)
                .Select(v =>
                {
                    result = result.Concat(Enumerable.Repeat<int>(v.Value, v.Count).Select(x => x)).ToArray();
                    return 0; })
                .ToArray();
            array = result;
            Console.WriteLine(String.Join(" ", array));
            Console.ReadKey();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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